Wie kann man den sichtbaren Bereich verschieben / anspringe?

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

Moderator: Moderatoren

JtfF
**
Beiträge: 25
Registriert: So, 24.03.2013 08:32

Wie kann man den sichtbaren Bereich verschieben / anspringe?

Beitrag von JtfF »

Windtunnel 9.ods
Ist für das leichter Austüfteln der Zeitvergabe in einem Windtunnel mit mehreren Teilnehmern gedacht! Je mehr Teilnehmer desto billiger die Einzelstunde dafür aber schwieriger die Vergabe der Einzelzeiten und deren Pausen zu berücksichtigen. Überhaupt wenn Teilnehmer unterschiedlich viel Stunden gekauft haben und nicht an allen Tagen teilnehmen können.
(85.15 KiB) 47-mal heruntergeladen
Wie kann man den sichtbaren Bereich verschieben / anspringen?

Ich habe ein Tabellenblatt das sich in die Breite zieht. Siehe Anhang! Es geht um die Eingabe einmal um die Namen der Teilnehmer und einmal wann wer wie viele Sekunden im Tunnel zubringt!

Einmal möchte ich den Bereich "Namen Eingabe + die gebuchten Zeiten" Zelle A1 .. E35 vor mir haben und dann via Tastenkompination (cmd+A) auf einen anderen Bereich "Eingabe der Sekunden je gebuchter Zeit jedes Teilnehmers" AX1..CA35 springen. in einer vorgesehene Zelle den Curser setzen. Ob da dann mehr Zellen am Bildschirm zu sehen sind oder nicht ist egal!!!

Wenn ich ein Makro aufzeichne wird durch das setzen des Curser leider der von mir vorgewählte Bereich verschoben. Somit habe ich nicht alle Einträge auf einem Blick vor mir liegen.

Leider finde ich keinen Befehl der mir das gewünschte Ergebnis liefert! EingabeZeit + EingabeName sind nur aufgezeichnete Makros wobei auch das "verstecken" der Spalten nicht funktioniert wenn ich das Makro starte, es verschiebt mir meine Buttons (farbige kleine Kreise) die ich in der ersten Zeile positioniert habe. Wenn ich die Spalten wider sichtbar mache werden die Buttons aber nicht mehr auf ihre ursprüngliche Position zurück gelegt. Je nach nach dem welche Spalten ich verstecke und wider sichtbar mache werden sogar Buttons unter ander Buttons "versteckt".

Code: Alles auswählen

sub Switcher
mysheet = Thiscomponent.sheets.getbyname("Timetable")
myDoc = thisComponent
mySheet = myDoc.sheets(0)


mycell = mysheet.getCellByPosition(247,1)
'...Wert auslesen
myValue=mycell.value

SELECT CASE myValue
 CASE 1' Eingabe Namen
   call EingabeNamen
   mycell = mysheet.getCellByPosition(247,1)
   mycell.Value = 2 ' Wert für H_Streifen zuweisen 
 CASE 2' Eingabe Zeit
   call EingabeZeit
   mycell = mysheet.getCellByPosition(247,1)
   mycell.Value = 1 ' Wert für H_Streifen zuweisen 
END SELECT

end sub REM = = = = = = = = = = = = = = = = = = = = = = 



sub EingabeZeit ' Makro nur aufgezeichnet!
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 = "ToPoint"
args1(0).Value = "$AZ$2"
dispatcher.executeDispatch(document, ".uno:HideColumn", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

end sub REM = = = = = = = = = = = = = = = = = = = = = = 



sub EingabeNamen ' Makro nur aufgezeichnet!
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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ShowColumn", "", 0, Array())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$H$10"

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

end sub REM = = = = = = = = = = = = = = = = = = = = = = 
Danke für eine Idee!

Liebe Grüße aus Wien! :?
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Wie kann man den sichtbaren Bereich verschieben / anspri

Beitrag von F3K Total »

Moin,
versuch mal dies:

Code: Alles auswählen

sub Switcher_new
    ocontroller = Thiscomponent.currentcontroller
    if ocontroller.FirstVisibleColumn = 0 then ocontroller.FirstVisibleColumn = 49 else ocontroller.FirstVisibleColumn = 0
end sub
Gruß R
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Wie kann man den sichtbaren Bereich verschieben / anspri

Beitrag von F3K Total »

Schau mal hier, ganz oben in diesem Forum.
viewtopic.php?f=18&t=1553
Gruß R
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Wie kann man den sichtbaren Bereich verschieben / anspri

Beitrag von F3K Total »

Code: Alles auswählen

ocontroller.FirstVisibleRow
muß gehen EDIT: funktioniert, habe es getestet.
R
Zuletzt geändert von F3K Total am Fr, 05.04.2013 17:39, insgesamt 1-mal geändert.
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Wie kann man den sichtbaren Bereich verschieben / anspri

Beitrag von F3K Total »

Moin,
Gast hat geschrieben:Und da wäre ich wider bei der Frage von vorher wie finde ich solche Feinheiten?
ich habe keine Ahnung was du meinst. Es gibt keine, oder sagen wir wenige, vorgefertigte Makros. Die muss man schreiben, so wie ich das obige geschrieben habe. Der Link oben zeigt auf ausreichend Informationsmaterial zu Starbasic.
Wenn das klar war, und du innerhalb eines Dokumentes nach möglichen Eigenschaften/Methoden suchen willst, empfehle ich Dir die Verwendung eines Inspection-Tools wie MRI oder Xray
Damit kannst Du alle OOo-Dokumente hinsichtlich ihres Aufbaues durchleuchten.
Gruß R
Antworten