🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[GELÖST]Makro um zu bestimmtem Sheet zu wechseln...

Alles zur Programmierung im LibreOffice.
Antworten
Sonntagsflieger
Beiträge: 61
Registriert: Di 27. Mai 2014, 12:27

[GELÖST]Makro um zu bestimmtem Sheet zu wechseln...

Beitrag von Sonntagsflieger » Mi 4. Feb 2015, 12:00

Hallo liebe Leute,

ich habe mir ein Makro aufgezeichnet und als Button in die Symbolleiste gelegt mit dem ich - egal wo ich mich gerade in meiner LO Datei befinde - auf ein bestimmtes Sheet mit einer bestimmten Zoomstufe (80%) wechseln kann. Klappt so weit wunderbar. Wenn ich allerdings in besagtem Sheet irgendwo hin scrolle, es so lasse, das Sheet wechsle und wieder das Makro ausführe komme ich zwar in der gewünschten Zoomstufe im gewünschten Sheet an, allerdings zu dem Bereich zu dem ich das letzte Mal hingescrollt bin. Wie kann ich im Makro eine bestimmte Scroll-Position definieren bzw. einen bestimmten Bereich des Sheets festlegen? Mit der Aufzeichnung ist es nicht möglich, der Recorder zeichnet im Gegensatz zu Zoomstufen keine Scroll-Bewegungen auf.

Arbeite mit LO 4.3.5.2 und OSX 10.7.5

Freue mich auf Hilfe.

Code: Alles auswählen

sub SpringezuTabelle
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 3

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(4) as new com.sun.star.beans.PropertyValue
args2(0).Name = "CharPreviewFontName.StyleName"
args2(0).Value = ""
args2(1).Name = "CharPreviewFontName.Pitch"
args2(1).Value = 2
args2(2).Name = "CharPreviewFontName.CharSet"
args2(2).Value = -1
args2(3).Name = "CharPreviewFontName.Family"
args2(3).Value = 5
args2(4).Name = "CharPreviewFontName.FamilyName"
args2(4).Value = "Liberation Sans"

dispatcher.executeDispatch(document, ".uno:CharPreviewFontName", "", 0, args2())

rem -------------------------------------------------------------------

dim args3(3) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ZoomSlider.CurrentZoom"
args3(0).Value = 80
args3(1).Name = "ZoomSlider.SnappingPoints"
args3(1).Value = Array()
args3(2).Name = "ZoomSlider.SvxMinZoom"
args3(2).Value = 20
args3(3).Name = "ZoomSlider.SvxMaxZoom"
args3(3).Value = 600

dispatcher.executeDispatch(document, ".uno:ZoomSlider", "", 0, args3())

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())


end sub
EDIT: also um es noch mal zu spezifizieren, ich will im Grunde in dem besagten Sheet bei Ausführung des Makros immer in der - ich nenn' es mal - "Ausgangsposition" sein. D.h. ich möchte oben links die Zelle A1 sehen können, egal wo ich zuletzt auf diesem Sheet war.
LO 4.3.6.2 // OSX 10.10.2 und LO 4.3.6 // Windows 8.1 über Parallels 10.1.4


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten