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

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Sonntagsflieger
Beiträge: 1
Registriert: Mi, 04.02.2015 14:03

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

Beitrag von Sonntagsflieger »

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.
Zuletzt geändert von Sonntagsflieger am Mi, 04.02.2015 14:49, insgesamt 1-mal geändert.
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: Makro um zu bestimmtem Sheet zu wechseln...

Beitrag von pmoegenb »

Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: Makro um zu bestimmtem Sheet zu wechseln...

Beitrag von TrueColor »

Sonntagsflieger hat geschrieben:[...]der Recorder zeichnet im Gegensatz zu Zoomstufen keine Scroll-Bewegungen auf. [...]D.h. ich möchte oben links die Zelle A1 sehen können, egal wo ich zuletzt auf diesem Sheet war.
[Strg]+[Pos1] (unter Windows, unter Mac wird es wohl eine ähnliche Tastenkombination geben) setzt den Cursor in die Zelle A1, das zeichnet der Macrorecorder auf. Bei Bedarf kannst du dann auch mit den Cursortasten woanders hin navigieren.

Edit: reines Scrollen wird nicht aufgezeichnet, wohl aber Cursorbewegungen.
Zuletzt geändert von TrueColor am Mi, 04.02.2015 14:43, insgesamt 1-mal geändert.
System:
LibO 6 + LibO 7
mikeleb
*******
Beiträge: 1412
Registriert: Fr, 09.12.2011 16:50

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

Beitrag von mikeleb »

Hallo Sontagsflieger,

manchmal ist es nett einfach ein bisschen Geduld zu haben. Alle die hier helfen machen es rein privat, du solltest also nicht erwarten, dass sofort jemand eine Lösung für dich parat hat (http://www.libreoffice-forum.de/viewtop ... 12&t=14595)
Dein Problem lässt sich mit ein paar wenigen Zeilen lösen:

Code: Alles auswählen

	odoc=thiscomponent
	octrl=odoc.currentcontroller
	octrl.setactivesheet(odoc.sheets(3)) 'wechselt das aktuelle Tabellenblatt
	octrl.firstvisiblerow=0 'erste sichtbare Zeile
	octrl.firstvisiblecolumn=0 'erste sichtbare Spalte
	octrl.zoomvalue=80 'Zoom in %
Gruß,
mikeleb
Antworten