🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Wie kann ich eine Benutzereingabe in Calc per Makro abschließen/übernehmen?

Alles zur Programmierung im LibreOffice.
Antworten
TaWulf
Beiträge: 5
Registriert: Di 23. Mai 2023, 11:08

Wie kann ich eine Benutzereingabe in Calc per Makro abschließen/übernehmen?

Beitrag von TaWulf » Di 23. Mai 2023, 14:25

Natürlich sollte man die Beutzer dazu erziehen, jede Eingabe selber abzuschließen..

..trotzdem möchte ich in meinem Makro den Wert verwenden, den der Benutzer gerade in eine Zelle eingegeben hat.

Wenn er nun meinen Suchbutton anklickt, wird noch der vorige Wert des Suchfeldes verwendet, obwohl der neue Wert ja schon zu sehen ist.

Im Augenblickt verwende ich einen Workaround - ich selektiere eine Dummy-Zelle bevor ich den neuen Suchwert auslese, aber schöner wäre so etwas wie ein Befehl, die EIngabe zu übernehmen, acceptChanges oder so..

Gibt es das?

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Wie kann ich eine Benutzereingabe in Calc per Makro abschließen/übernehmen?

Beitrag von F3K Total » Di 23. Mai 2023, 17:28

Moin,
deine Frage zu verstehen ist kaum möglich.
Ich nehme mal an, da wir uns in Calc befinden, dass dein Benutzer in eine Zelle einen Wert eingibt, der dann, nach Klick auf eine Schaltfläche in einem durch die Schaltfläche gestarteten Makro verarbeitet werden soll?

Ist zwar mit Kanonen auf Spatzen geschossen, schein aber zu funktionieren:

Code: Alles auswählen

Sub Zelle_A1_auslesen
    oSheet = ThisComponent.Sheets.GetByName("Tabelle1")
    oCell = oSheet.getCellByPosition(0,0)
    ThisComponent.calculateAll
    print oCell.Formula
End Sub
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

TaWulf
Beiträge: 5
Registriert: Di 23. Mai 2023, 11:08

Re: Wie kann ich eine Benutzereingabe in Calc per Makro abschließen/übernehmen?

Beitrag von TaWulf » Mi 24. Mai 2023, 10:17

Hm, interessant. Ja, das funktioniert auch. Vielen Dank!

Ob

Code: Alles auswählen

ThisComponent.calculateAll
'billiger' ist als einmal eine Dummyzelle zu selektieren ist wohl auch egal..

((Und: Ja, du hast die Frage eigentlich schon verstanden. Auch nach mehrmaligem Nachlesen weiß ich nicht, was daran so unverständlich sein soll. Aber das passiert ja oft..))

mikele
* LO-Experte *
Beiträge: 1932
Registriert: Mo 1. Aug 2011, 20:51

Re: Wie kann ich eine Benutzereingabe in Calc per Makro abschließen/übernehmen?

Beitrag von mikele » Mi 24. Mai 2023, 13:56

Hallo,
schön, dass die Lösung hilft.
Allerdings verstehe ich das Problem auch nicht.
trotzdem möchte ich in meinem Makro den Wert verwenden, den der Benutzer gerade in eine Zelle eingegeben hat.
Das wird in dem Makro gar nicht getan. Worin besteht also die Lösung?
Gruß,
mikele

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Wie kann ich eine Benutzereingabe in Calc per Makro abschließen/übernehmen?

Beitrag von F3K Total » Mi 24. Mai 2023, 19:01

Moin,
TaWulf hat geschrieben:
Mi 24. Mai 2023, 10:17
was daran so unverständlich sein soll...
Es fehlten die Angaben
  • wofür dein Makro überhaupt da ist
  • was der Suchbutton ist
  • das dein Makro durch Klick auf eben diesen Suchbutton gestartet werden soll
Es sitzt keiner hinter dir, und kann sehen was du da auf dem Bildschirm hast.

Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

TaWulf
Beiträge: 5
Registriert: Di 23. Mai 2023, 11:08

Re: Wie kann ich eine Benutzereingabe in Calc per Makro abschließen/übernehmen?

Beitrag von TaWulf » Do 25. Mai 2023, 07:35

Es fehlten die Angaben

wofür dein Makro überhaupt da ist
was der Suchbutton ist
das dein Makro durch Klick auf eben diesen Suchbutton gestartet werden soll

Ja, das stimmt schon alles aber ich wollte mich/Euch auf das Problem konzentrieren und die Details weglassen, die damit nichts zu tun haben.

Hier nochmal die Kurzfassung: Neben den Eingabefeld oben, das man ja mit F2 erreicht, sind während der Eingabe kleine Buttons, ein rotes x (Eingabe abbrechen) und ein grüner Haken (Eingabe akzeptieren). Wie kann man per Makro den grünen Haken auslösen?

Der Benutzer hat die Wahl, stattdessen Enter oder Tab zu drücken oder in eine andere Zelle zu klicken.

Wenn er aber das alles nicht macht sondern direkt auf einen Button klickt, egal was der macht, ist die Eingabe noch nicht im Zellwert und wenn das Button-Makro sie ausliest, kriegt es den alten Wert. Das ist unschön und ich möchte es vermeiden..


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten