Re: Makro bei "betreten" der Zelle starten
Verfasst: Do, 12.02.2009 10:39
deutsches Forum rund um Apache OpenOffice und LibreOffice
http://www.oooforum.de/
wie stellst Du denn sicher, dass der Nutzer diese Zelle auswählt und nicht eine Andere?Gast hat geschrieben:betritt das nächste feld (bei mir) B6
[/quote]turtle47 hat geschrieben:
wie stellst Du denn sicher, dass der Nutzer diese Zelle auswählt und nicht eine Andere?
Und was ist wenn der Nutzer ohne etwas eingegeben zu haben in diese Zelle klickt?
[[uote]
da würde ich auf die intuitive Bedienung setzen ^^ hatte das als mir umsetzbare Möglichkeit gedacht
[q[ote="turtle47"]
Wäre es nicht sinnvoller dem Nutzer einen Dialog anzubieten der ausgefüllt wird und dann
die Daten in das Tabellenblatt überträgt? [/qu[te]
und dafür, wie man das Gleiche mit OOo macht (nämlich mit einem Listener, sind Dir hier im Thread bereits 2 beispiele angeboten worden...hab in der Uni mal vba gehabt, da gibt es eine Option, das ein Makro aktiviert wird, wenn man mit dem Cursor die Zelle betritt oder verlässt (konnte man wie beim Button einstellen
Der Cursor wird doch erst sichtbar, wenn man einen Doppelklick in die Zelle macht.rob hat geschrieben:da gibt es eine Option, das ein Makro aktiviert wird, wenn man mit dem Cursor die Zelle betritt oder verlässt (konnte man wie beim Button einstellen)
Warum machst Du das nicht direkt mit einem Button? Den finde ich intuitiver als in eine Zelle klicken. Oder?rob hat geschrieben:da würde ich auf die intuitive Bedienung setzen ^^ hatte das als mir umsetzbare Möglichkeit gedacht
der user gibt von B3 bis B6 seinen Namen, Vornamen und Geburtsjahr ein, die Zellen sind bis dahin leer. Sind daten vorhanden schreibt er sie in die entsprechenden Felder (ist schon fertig). zum nächsten Feld kommt er durch Drücken von Enter. Mir fällt gerade auf, dass verlassen viel besser wäre. Dann könnte man auch gleich von B25 zu E2 springen.turtle47 hat geschrieben:
Der Cursor wird doch erst sichtbar, wenn man einen Doppelklick in die Zelle macht.
Klickt der User in die Zelle oder wird das mit der Tabtaste gemacht?
Steht da vielleicht ein Text in der Zelle?
sagt mir noch nicht wirklich viel mach erst seit zwei drei Wochen ooturtle47 hat geschrieben:Dafür müsste man mit einem "Listener" arbeiten.
Bei einem Button muss er zur Maus greifen, dann eher nen Eingabefeld, was den Wert dann in die Zelle schreibt. Doch das fällt Optisch aufturtle47 hat geschrieben: Warum machst Du das nicht direkt mit einem Button? Den finde ich intuitiver als in eine Zelle klicken. Oder?
hab das aber nicht wirklich verstandenStephan hat geschrieben: und dafür, wie man das Gleiche mit OOo macht (nämlich mit einem Listener, sind Dir hier im Thread bereits 2 beispiele angeboten worden...Stephan
Code: Alles auswählen
Sub initializeListener
oListener = CreateUnoListener( "ClicListener_", "com.sun.star.view.XSelectionChangeListener" )
oDocument = ThisComponent
oDocument.getCurrentController.addSelectionChangeListener(oListener)
End Sub
Sub ClicListener_selectionChanged(oEvent)
Dim Selection As Object
Dim bTest as Boolean
Dim Zelladr As String
oSelection = oEvent.source.selection
if oSelection.supportsService ("com.sun.star.sheet.SheetCell") then
bTest = true
If oSelection.CellAddress.row = oResentSelectedROw Then
If oSelection.CellAddress.Column = oResentSelectedColnum Then
bTest = false
If bBackjump Then
bBackjump = false
Exit Sub
endif
end if
end if
bBackjump = bTest
oResentSelectedROw = oSelection.CellAddress.row
oResentSelectedColnum = oSelection.CellAddress.Column
If oResentSelectedColnum =1 Then 'spalte der zelle aus welcher das Makro ausgeführt werden soll
If oResentSelectedROw =5 then 'zeile der zelle aus welcher das Makro ausgeführt werden soll
datenabgleich(lauf_zeile) ' Makro das gestartet werden soll
End If
End IF
end if
end sub[/