Makro bei "betreten" der Zelle starten
Moderator: Moderatoren
Re: Makro bei "betreten" der Zelle starten
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Makro bei "betreten" der Zelle starten
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Makro bei "betreten" der Zelle starten
Hallo
Wenn du deine Aufgabenstellung mal detaillierter beschreibst, nebst Makrocode des zu startenden Makro, wird dir hier sicher geholfen das zusammenzubauen.
Gruß Karo
Wenn du deine Aufgabenstellung mal detaillierter beschreibst, nebst Makrocode des zu startenden Makro, wird dir hier sicher geholfen das zusammenzubauen.
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Makro bei "betreten" der Zelle starten
So hab mich nun mal angemeldet.
könnte mir jemand helfen beim einbinden von Jürgen´s Makro???
könnte mir jemand helfen beim einbinden von Jürgen´s Makro???
Re: Makro bei "betreten" der Zelle starten
Hi Rob,
Und was ist wenn der Nutzer ohne etwas eingegeben zu haben in diese Zelle klickt?
Wäre es nicht sinnvoller dem Nutzer einen Dialog anzubieten der ausgefüllt wird und dann
die Daten in das Tabellenblatt überträgt?
Jürgen
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
Und was ist wenn der Nutzer ohne etwas eingegeben zu haben in diese Zelle klickt?
Wäre es nicht sinnvoller dem Nutzer einen Dialog anzubieten der ausgefüllt wird und dann
die Daten in das Tabellenblatt überträgt?
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Makro bei "betreten" der Zelle starten
grüß dich
bei einem Dialog würde ich Neueintragungen nicht so wirklich Optimieren. Das Laden der Daten soll nur ein Feature sein, da manche ja nur ihre alten Daten aktualisieren brauchen. Zudem hätte ich gleich eine Zeile augegeben, in der ich die zugehörigen alten Aaten löschen könnte.
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)
greetz
ps: beim Ändern haut was nicht wirklich hin, kann Quote löschen wie ich mag, haut er immer wieder rein
[/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]
bei einem Dialog würde ich Neueintragungen nicht so wirklich Optimieren. Das Laden der Daten soll nur ein Feature sein, da manche ja nur ihre alten Daten aktualisieren brauchen. Zudem hätte ich gleich eine Zeile augegeben, in der ich die zugehörigen alten Aaten löschen könnte.
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)
greetz
ps: beim Ändern haut was nicht wirklich hin, kann Quote löschen wie ich mag, haut er immer wieder rein
Re: Makro bei "betreten" der Zelle starten
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
Gruß
Stephan
Re: Makro bei "betreten" der Zelle starten
Hi,
Klickt der User in die Zelle oder wird das mit der Tabtaste gemacht?
Steht da vielleicht ein Text in der Zelle?
Dafür müsste man mit einem "Listener" arbeiten.
Jürgen
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)
Klickt der User in die Zelle oder wird das mit der Tabtaste gemacht?
Steht da vielleicht ein Text in der Zelle?
Dafür müsste man mit einem "Listener" arbeiten.
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
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Makro bei "betreten" der Zelle starten
grüß dich

ne einfache Erweiterung von oo "Eigenschaften Zelle" wäre da schon genial
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?

ne einfache Erweiterung von oo "Eigenschaften Zelle" wäre da schon genial

Re: Makro bei "betreten" der Zelle starten
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

Auf dem Link von Karo hab ich auch nicht wirklich was gefunden, da ist zwar calc_onCulumnChange eine ausführliche Anleitung, doch hmmm..
Re: Makro bei "betreten" der Zelle starten
jippee es funktioniert.
falls jemand mal ein ähnliches Problem hat :
denke mal das nun auch anfänger (like me) was damit anfangen können 
falls jemand mal ein ähnliches Problem hat :
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[/
