Zellbereich richtig anzeigen lassen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Pretender1970
**
Beiträge: 28
Registriert: Fr, 05.01.2018 08:38

Zellbereich richtig anzeigen lassen

Beitrag von Pretender1970 »

Hallo Zusammen,

ich habe ein Tabellenblatt, dass sehr viele Zeilen beinhaltet. Ich habe nun Makros die zu einem bestimmten
Zellbreich springen. Allerdings wird dieser Bereich nicht optimal angezeigt. Ist es möglich dass der vordefinierte
Zellbereich bei der Ansicht immer oben links beginnt (siehe Anhang).

gruß an Alle

Marc
Dateianhänge
richtig.JPG
richtig.JPG (69.95 KiB) 2351 mal betrachtet
falsch.JPG
falsch.JPG (36.33 KiB) 2351 mal betrachtet
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Zellbereich richtig anzeigen lassen

Beitrag von Stephan »

Das hier scrollt den sichtbaren Bereich so das Zelle C12 links-oben ist:

Code: Alles auswählen

oViewController = ThisComponent.getCurrentController()
oViewController.setFirstVisibleRow(11)
oViewController.setFirstVisibleColumn(2)

am Rande:
Jeder konnte aus Deinen Makros die resultierende Ansicht ableiten ... nur niemand aus den Screeenshots den Inhalt der Makros ... somit sind die Screenshots eigentlich nur eine hübsche Illustration ...


Gruß
Stephan
Pretender1970
**
Beiträge: 28
Registriert: Fr, 05.01.2018 08:38

Re: Zellbereich richtig anzeigen lassen

Beitrag von Pretender1970 »

Hallo Stephan,

da hast du natürlich recht. In meinem neuen beigefügtem Bild, wird es vielleicht noch einmal deutlich.
Beide Bereiche (Kupfer und Kabel ) werden angezeigt, aber "Kupfer" vollständig und "Kabel" unvollständig.
Doch eigentlich möchte ich immer nur einen Bereich angezeigt bekommen. In diesem Fall z.B. nur "Kupfer" mit
dem gesamten farblichen Zellbereich. Mit deiner Hilfe wird verschwindet der Button "Startseite"

Gruß Marc

Hier mein Makro
Sub Liste_einblenden

myDoc = thisComponent
mySheet = myDoc.Sheets(1)
mySheet = myDoc.Sheets().getByName("Liste")
mysheet.isvisible=true
odoc=thiscomponent
octrl=odoc.currentcontroller
octrl.setactivesheet(odoc.sheets(1)) 'wechselt das aktuelle Tabellenblatt
octrl.firstvisiblerow=0 'erste sichtbare Zeile
octrl.firstvisiblecolumn=0 'erste sichtbare Spalte
octrl.zoomvalue=93 'Zoom in %

rem define variables
dim document as object
dim dispatcher as object
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "A4"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
myDoc = thisComponent
mySheet = myDoc.Sheets(0)
mySheet = myDoc.Sheets().getByName("Start")
mysheet.isvisible=false
End Sub
Dateianhänge
Anzeige.JPG
Anzeige.JPG (84.13 KiB) 2319 mal betrachtet
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Zellbereich richtig anzeigen lassen

Beitrag von Stephan »

Doch eigentlich möchte ich immer nur einen Bereich angezeigt bekommen. In diesem Fall z.B. nur "Kupfer" mit
dem gesamten farblichen Zellbereich.
Ist das so gemeint wie es dasteht ... dann müsstest Du den Bereich markieren und Ansicht-Maßstab-optimal klicken, das müsste sich per Makrorekorder aufzeichnen lassen.
Das führt natürlich dazu das die Größe der Darstellung sich ändert, weswegen ich unsicher bin ob Du das überhaupt willst, wie Du es schreibst, zumal das Skalieren proportional erfolgt und das ERgebnis nicht zwingend 'programmfensterfüllend sein muss sondern u.U. unten oder rechts überschüssiger Platz bleibt.

Vielleicht ist es ja besser Spalten/Zeilen auszublenden oder besser (Makro nutzt Du ja ohnehin schon), die Daten in einem separaten Dialog-Grid anzuzeigen, siehe: mhttp://www.mic-consulting.de/de/artikel/makros/table-grid (Beispieldatei ganz unten, im dortigen Beitrag)
Mit deiner Hilfe wird verschwindet der Button "Startseite"
Das dürfte mit der Verankerung des Buttons zusammenhängen. Von der Logik her sollte es klappen wenn Du diesen Button an der Zelle verankerst, worin das Wort "Kupfer" steht, aber offen gesagt funktioniert bei mir "Verankerung an der Seite" ebenfalls, so das ich da jetzt etwas ratlos bin.
Lade dEine Datei hoch, dann kann ich prüfen ob ich den Fehler bei DEiner DFatei auch bekomme.


Gruß
Stephan
Pretender1970
**
Beiträge: 28
Registriert: Fr, 05.01.2018 08:38

Re: Zellbereich richtig anzeigen lassen

Beitrag von Pretender1970 »

Hallo Stephan,

du wirst erst mir nicht glauben. In meinem Geschäft wäre alles viel einfacher,
wenn ich den Makro-Rekorder aufrufen könnte. Allerdings wurde der von unserer IT
wegen angeblich vieler sensiblen Bereiche entfernt. Es könnten dadurch Makro-Viren
von Außen eingeschleust werden. Ich muss mir also ganz
viele Kleinigkeiten selber zusammenbauen und das ist mühselig. Ich muss auch jedes Mal
"Makro aktivieren" bestätigen, wenn ich die Datei öffne will. Das lässt sich leider auch
nicht abschalten.

Anbei eine abgespeckte Datei, die im Original fast 100 farbliche Bereiche (grün)
beinhaltet. Deswegen wollte ich alles in einem Tabellenblatt unterbringen und
nicht in bis zu 100 einzelne Tabellenblätter.

Gruß Marc
Dateianhänge
Bestellungen.ods
(16.69 KiB) 47-mal heruntergeladen
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Zellbereich richtig anzeigen lassen

Beitrag von Stephan »

Bei mir funktioniert z.B.:

Code: Alles auswählen

Sub kabel()

ThisComponent.Sheets.getByName("Liste").isVisible = True

oViewController = ThisComponent.getCurrentController()

oViewController.setactivesheet(ThisComponent.Sheets.getByName("Liste"))

oViewController.setFirstVisibleRow(34)
oViewController.setFirstVisibleColumn(0)
End Sub

getestet mit AOO 4.1.6 und OOo 3.3.0 und LO 7.0.1.


Wenn es wirklich nur um die Schaltflächen geht, würde es dann nicht als workaround genügen das Makro dem Ereignis "Doppelklick" des Tabellenblatts "LIste" zuzuordnen? Dann kannst Du irgendwo in der Tabelle "Liste" doppelklicken und das Makro startet.


Gruß
Stephan
Pretender1970
**
Beiträge: 28
Registriert: Fr, 05.01.2018 08:38

Re: Zellbereich richtig anzeigen lassen

Beitrag von Pretender1970 »

Hallo Stephan,

wieso kompliziert, wenn es auch einfach geht. Natürlich hast du recht, es geht wesentlicher
einfacher mit deiner Methode. Klappt wunderbar...oje bis ich soweit bin, um das alles so richtig
zu verstehen und umzusetzen, geht noch sehr viel Zeit ins Land......aber learning by doing....

Ich danke dir recht herzlich für deine Hilfestellung....mach weiter so.:)) :lol: :lol: :lol:

Gruß marc
Antworten