andere Darstellung nach Erreichen des Sprungzieles?
Moderator: Moderatoren
andere Darstellung nach Erreichen des Sprungzieles?
Hallo,
immer wenn ich in einer langen Tabelle ein Sprungziel ansteuere, wird dieses Sprungziel in die Mitte des Fensters gerückt. Ich brauche aber eine Funktion die es mir erlaubt, das Sprungziel ganz oben darzustellen.
Ich habe eine lange Tabelle, in der unter jedem Wochentag eine unterschiedlich lange Reihe von Einträgen steht. Wegen der Übersichtlichkeit sollte die Titelzeile immer an oberster Stelle stehen, hier ist auch meine Sprungmarke. Die Sprungmarke weiter unten zu plazieren funktioniert nicht, weil unterschiedliche Bildschirme zur Anwendung kommen und das Calc-Fenster unterschiedlich hoch sein kann.
Siehe Bild, der schwarze Punkt kennzeichnet meine Sprungmarke.
Weiß jemand einen Trick oder eine Funktion, die mir weiter hilft?
Gruß, weinstein
immer wenn ich in einer langen Tabelle ein Sprungziel ansteuere, wird dieses Sprungziel in die Mitte des Fensters gerückt. Ich brauche aber eine Funktion die es mir erlaubt, das Sprungziel ganz oben darzustellen.
Ich habe eine lange Tabelle, in der unter jedem Wochentag eine unterschiedlich lange Reihe von Einträgen steht. Wegen der Übersichtlichkeit sollte die Titelzeile immer an oberster Stelle stehen, hier ist auch meine Sprungmarke. Die Sprungmarke weiter unten zu plazieren funktioniert nicht, weil unterschiedliche Bildschirme zur Anwendung kommen und das Calc-Fenster unterschiedlich hoch sein kann.
Siehe Bild, der schwarze Punkt kennzeichnet meine Sprungmarke.
Weiß jemand einen Trick oder eine Funktion, die mir weiter hilft?
Gruß, weinstein
- Dateianhänge
-
- Die Datum-Zeile erscheint leider immer mitten im Fenster
- 080818003250_1.jpg (36.03 KiB) 472 mal betrachtet
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: andere Darstellung nach Erreichen des Sprungzieles?
Du erzeugst einen ViewCursor, und bestimmst mit ihm das Blatt und die erste sichtbare Spalte/Zeile:
Hilft das weiter?
Code: Alles auswählen
oBlatt = ThisComponent.Sheets().getByName( "aufstellung" )
oViewContr = ThisComponent.getCurrentController()
With oViewContr
.setActiveSheet( oBlatt )
.setFirstVisibleColumn( 0 )
.setFirstVisibleRow( 572 )
End With
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: andere Darstellung nach Erreichen des Sprungzieles?
Hallo Winfried,
ganz herzlichen Dank für deine schnelle Antwort.
Leider bin ich ziemlich doof und weiss nicht, was ich mit dem Code machen soll. Muss ich den in ein Makro einfügen oder damit ein Makro erzeugen? Was ist ein ViewCursor und wie erzeuge ich ihn? Die HIlfe von OOO kennt das Wort nicht (ich auch nicht).
Ich benutze die Windows-Version von OOO 2.4.1 (XP prof)
Gruß, weinstein
ganz herzlichen Dank für deine schnelle Antwort.
Leider bin ich ziemlich doof und weiss nicht, was ich mit dem Code machen soll. Muss ich den in ein Makro einfügen oder damit ein Makro erzeugen? Was ist ein ViewCursor und wie erzeuge ich ihn? Die HIlfe von OOO kennt das Wort nicht (ich auch nicht).
Ich benutze die Windows-Version von OOO 2.4.1 (XP prof)
Gruß, weinstein
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: andere Darstellung nach Erreichen des Sprungzieles?
mmh, bei Deiner Frage nach "Tricks" brach bei mir sofort die Makroantwort aus...
ja: erstelle ein neues Makro-Modul (zum Dokument, wo Du es brauchst) und kopiere den Code (Wiki). Stelle ein Sub springe_A573 voran und ein End Sub hinterdran.
Nun tauschst Du den Namen Deines Tabellenblatts noch aus (im Code aufstellung - und fertig.
Damit hast Du schon ein lauffähiges Makro (den viewcursor erzeugt es dann selbst):
DIe Spalten-/Zeilen-Nummern sind Indices und fangen bei Null an, deshalb wird bei obigen Werten "A573" angezeigt.
Das Makro wird dann einer Tastenkombination oder Schaltfläche zugewiesen: mindestens in den neueren 2.x-Versionen geht das auch pro Dokument zu speichern.
HIlft das - und verzeihst Du mir die Makroantwort?!
ja: erstelle ein neues Makro-Modul (zum Dokument, wo Du es brauchst) und kopiere den Code (Wiki). Stelle ein Sub springe_A573 voran und ein End Sub hinterdran.
Nun tauschst Du den Namen Deines Tabellenblatts noch aus (im Code aufstellung - und fertig.
Damit hast Du schon ein lauffähiges Makro (den viewcursor erzeugt es dann selbst):
Code: Alles auswählen
Sub springe_A573
oBlatt = ThisComponent.Sheets().getByName( "aufstellung" )
oViewContr = ThisComponent.getCurrentController()
With oViewContr
.setActiveSheet( oBlatt )
.setFirstVisibleColumn( 0 )
.setFirstVisibleRow( 572 )
End With
End Sub
Das Makro wird dann einer Tastenkombination oder Schaltfläche zugewiesen: mindestens in den neueren 2.x-Versionen geht das auch pro Dokument zu speichern.
HIlft das - und verzeihst Du mir die Makroantwort?!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: andere Darstellung nach Erreichen des Sprungzieles?
Hallo Winfried,
entschuldige, dass ich mich erst jetzt melde, hatte leider bis eben keine Zeit, das auszuprobieren.
Das klappt schon mal super, ganz herzlichen Dank!
Jetzt habe ich noch das Problem, dass ich ungerne 60 Makros definieren möchte, um zu den einzelnen Tagen zu springen.
Besser wäre, wenn man zu einem bestimmten Zeichen springen könnte (z.B. zum nächsten schwarzen Viereck vor dem B, oder zu irgendeinem anderen eindeutigen Zeichen) und diese Zeile als oberstes angezeigt wird. Kannst du mir dabei nochmal helfen?
Leider habe ich noch keine Erfahrung in der Makroprogrammierung, würde aber gerne mehr lernen.
Gibt es irgendwo ein Handbuch dazu, am besten online?
Gruß, weinstein
entschuldige, dass ich mich erst jetzt melde, hatte leider bis eben keine Zeit, das auszuprobieren.
Das klappt schon mal super, ganz herzlichen Dank!
Jetzt habe ich noch das Problem, dass ich ungerne 60 Makros definieren möchte, um zu den einzelnen Tagen zu springen.
Besser wäre, wenn man zu einem bestimmten Zeichen springen könnte (z.B. zum nächsten schwarzen Viereck vor dem B, oder zu irgendeinem anderen eindeutigen Zeichen) und diese Zeile als oberstes angezeigt wird. Kannst du mir dabei nochmal helfen?
Leider habe ich noch keine Erfahrung in der Makroprogrammierung, würde aber gerne mehr lernen.
Gibt es irgendwo ein Handbuch dazu, am besten online?
Gruß, weinstein
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: andere Darstellung nach Erreichen des Sprungzieles?
Hallo weinstein,
Basic lernen: erstes sticky Posting im BASIC-Bereich.
zum "Sprungproblem": wie "springst" Du auf einen solchen Tag? würde es reichen, nach Deinem Sprung jeweils 3 (?) Zeilen nach oben zu scrollen?
Basic lernen: erstes sticky Posting im BASIC-Bereich.
zum "Sprungproblem": wie "springst" Du auf einen solchen Tag? würde es reichen, nach Deinem Sprung jeweils 3 (?) Zeilen nach oben zu scrollen?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: andere Darstellung nach Erreichen des Sprungzieles?
Hallo Winfried,
Gruß, weinstein
Scrollen alleine reicht nicht, da die Tabelle auf Montoren mit verschiedenen Auflösungen geöffnet wird, die oberste Zeile aber immer gleich sein sollte. Es wäre als Notlösung möglich.komma4 hat geschrieben:wie "springst" Du auf einen solchen Tag? würde es reichen, nach Deinem Sprung jeweils 3 (?) Zeilen nach oben zu scrollen?
Gruß, weinstein
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: andere Darstellung nach Erreichen des Sprungzieles?
OK, anders gefragt:
wie soll ein Makro wissen können, ob es zum 17.11.2007 oder zum 03.03.2008 springen soll?
Wie "springst" Du bislang?
wie soll ein Makro wissen können, ob es zum 17.11.2007 oder zum 03.03.2008 springen soll?
Wie "springst" Du bislang?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: andere Darstellung nach Erreichen des Sprungzieles?
Ich habe es zumindest geschafft, dass die Zeile, in der der Cursor ist, per Klick auf das Makro in die erste Zeile verschoben wird:
function getRow() as String
dim oSel as Object
dim oDesktop as Object
dim oAdr as Object
oDesktop = createUnoService( "com.sun.star.frame.Desktop" )
oSel = oDesktop.CurrentFrame.Controller.Selection
oAdr = oSel.CellAddress
getRow = oAdr.Row
end function
sub springe_A573
rem ----------------------------------------------------------------------
rem define variables
rem ----------------------------------------------------------------------
rem get access to the document
oBlatt = ThisComponent.Sheets().getByName( "B_Terminplan" )
oViewContr = ThisComponent.getCurrentController()
rem ----------------------------------------------------------------------
With oViewContr
.setActiveSheet( oBlatt )
.setFirstVisibleColumn( 0 )
.setFirstVisibleRow( getRow )
End With
end sub
Jetzt müsste man das nur noch in die Suche nach der Zeile einbauen ...
Gruß, weinstein
function getRow() as String
dim oSel as Object
dim oDesktop as Object
dim oAdr as Object
oDesktop = createUnoService( "com.sun.star.frame.Desktop" )
oSel = oDesktop.CurrentFrame.Controller.Selection
oAdr = oSel.CellAddress
getRow = oAdr.Row
end function
sub springe_A573
rem ----------------------------------------------------------------------
rem define variables
rem ----------------------------------------------------------------------
rem get access to the document
oBlatt = ThisComponent.Sheets().getByName( "B_Terminplan" )
oViewContr = ThisComponent.getCurrentController()
rem ----------------------------------------------------------------------
With oViewContr
.setActiveSheet( oBlatt )
.setFirstVisibleColumn( 0 )
.setFirstVisibleRow( getRow )
End With
end sub
Jetzt müsste man das nur noch in die Suche nach der Zeile einbauen ...
Gruß, weinstein
Re: andere Darstellung nach Erreichen des Sprungzieles?
Hallo Winfried,
ich habe es jetzt alleine hingekriegt, indem ich das eben beschriebenen Funktionen in das Makro "Springe zum nächsten Tag" eingebaut habe.
Vielen Dank für deine Hilfe und Anregungen!
Gruß, weinstein
ich habe es jetzt alleine hingekriegt, indem ich das eben beschriebenen Funktionen in das Makro "Springe zum nächsten Tag" eingebaut habe.
Vielen Dank für deine Hilfe und Anregungen!
Gruß, weinstein