Makro bei "betreten" der Zelle starten

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

Moderator: Moderatoren

Karolus
********
Beiträge: 7517
Registriert: Mo, 02.01.2006 19:48

Re: Makro bei "betreten" der Zelle starten

Beitrag von Karolus »

Hallo
Ja das sollte gehen, Jürgen alias Turtle hat hier ein Beispiel entworfen.
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)
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Makro bei "betreten" der Zelle starten

Beitrag von turtle47 »

Hallo Gast,

sowas findest Du hier.

Viel Erfolg.

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
Karolus
********
Beiträge: 7517
Registriert: Mo, 02.01.2006 19:48

Re: Makro bei "betreten" der Zelle starten

Beitrag von Karolus »

Hallo
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)
rob
*
Beiträge: 11
Registriert: Do, 12.02.2009 12:07

Re: Makro bei "betreten" der Zelle starten

Beitrag von rob »

So hab mich nun mal angemeldet.

könnte mir jemand helfen beim einbinden von Jürgen´s Makro???
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Makro bei "betreten" der Zelle starten

Beitrag von turtle47 »

Hi Rob,
Gast hat geschrieben:betritt das nächste feld (bei mir) B6
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?

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
rob
*
Beiträge: 11
Registriert: Do, 12.02.2009 12:07

Re: Makro bei "betreten" der Zelle starten

Beitrag von rob »

grüß dich
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]
[/quote]

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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Makro bei "betreten" der Zelle starten

Beitrag von Stephan »

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
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...


Gruß
Stephan
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Makro bei "betreten" der Zelle starten

Beitrag von turtle47 »

Hi,
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)
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?

Dafür müsste man mit einem "Listener" arbeiten.
rob hat geschrieben:da würde ich auf die intuitive Bedienung setzen ^^ hatte das als mir umsetzbare Möglichkeit gedacht
Warum machst Du das nicht direkt mit einem Button? Den finde ich intuitiver als in eine Zelle klicken. Oder?

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
rob
*
Beiträge: 11
Registriert: Do, 12.02.2009 12:07

Re: Makro bei "betreten" der Zelle starten

Beitrag von rob »

grüß dich
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?
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:Dafür müsste man mit einem "Listener" arbeiten.
sagt mir noch nicht wirklich viel mach erst seit zwei drei Wochen oo
turtle47 hat geschrieben: Warum machst Du das nicht direkt mit einem Button? Den finde ich intuitiver als in eine Zelle klicken. Oder?
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 auf :(


ne einfache Erweiterung von oo "Eigenschaften Zelle" wäre da schon genial :D
rob
*
Beiträge: 11
Registriert: Do, 12.02.2009 12:07

Re: Makro bei "betreten" der Zelle starten

Beitrag von rob »

Stephan 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
hab das aber nicht wirklich verstanden :(

Auf dem Link von Karo hab ich auch nicht wirklich was gefunden, da ist zwar calc_onCulumnChange eine ausführliche Anleitung, doch hmmm..
rob
*
Beiträge: 11
Registriert: Do, 12.02.2009 12:07

Re: Makro bei "betreten" der Zelle starten

Beitrag von rob »

jippee es funktioniert.


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[/
denke mal das nun auch anfänger (like me) was damit anfangen können :D
Antworten