BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 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
Beiträge: 2410
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 10: 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
Beiträge: 1642
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
Beiträge: 2410
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 10: 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 nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten