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

simples Makro, welches auf Zellinhalt-Aenderung reagiert

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
Kermit
Beiträge: 12
Registriert: Fr 6. Jul 2012, 16:42

simples Makro, welches auf Zellinhalt-Aenderung reagiert

Beitrag von Kermit » Do 15. Okt 2015, 19:00

Hallo,
wurde bestimmt schon tausend mal gefragt, aber ich finde es leider nicht. Die Beispiele für Excel-VBA geben bei mir immer nur Laufzeitfehler. Vielleicht trage ich sie auch an der falschen Stelle ein. Ich habe Makros (Excel) bisher immer nur aufgezeichnet und ausgeführt. Programmierkenntnisse habe ich eigentlich auch.

Ich möchte eine simple, bidirektional wirkende Formel, welche auf Zelländerung reagiert. Als einfaches Beispiel soll ein Dollar / Euro Umrechner dienen:
Seien in Spalte A die (Text)Bezeichnungen und in Spalte B die entsprechenden Werte

Zelle A1= "Wechselkurs" Zelle B1= 1,14
Zelle A2= "Euro" Zelle B2= WERT
Zelle A3= "Dollar" Zelle B3= WERT

Das Makro soll nun die Zellen B2 und B3 auf Änderungen durch (manuelle) Eingaben überwachen. Bei Änderung soll die jeweils andere Zelle automatisch mit den in $B$1 stehenden Wechselkurs berechnet werden.
Dazu braucht man wohl einen "Listener" der entsprechendes Ereignis überwacht. Irgendwo muss doch ein simples Beispiel wie meines existieren? Link?


Danke im Voraus

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

Re: simples Makro, welches auf Zellinhalt-Aenderung reagiert

Beitrag von F3K Total » Do 15. Okt 2015, 19:47

Hi,
eigentlich die falsche Forumskategorie, es gibt ja auch LibreOffice Programmierung, aber sei es drum.
Folgendes Makro an das Tabellenereignis der Tabelle1, "Inhalt geändert", gehängt, sollte es tun:

Code: Alles auswählen

sub Umrechner(event)
    oSheet = ThisComponent.sheets.Tabelle1
    oWKCell =  oSheet.getcellbyposition(1,0)
    dWK = oWKCell.value
    select case event.AbsoluteName
    case "$Tabelle1.$B$2"
        dEURO = event.value
        oDCell = oSheet.getcellbyposition(1,2)
        oDCell.Value = dEURO * dWK    
    case "$Tabelle1.$B$3"
        dDOLLAR = event.value
        oECell = oSheet.getcellbyposition(1,1)
        oECell.Value = dDOLLAR / dWK
    end select
End sub
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

Kermit
Beiträge: 12
Registriert: Fr 6. Jul 2012, 16:42

Re: simples Makro, welches auf Zellinhalt-Aenderung reagiert

Beitrag von Kermit » Do 15. Okt 2015, 20:07

Danke für den Tipp! Auf Tabellenereignis (Rechtsklick auf Tabelle1) wäre ich so niemals gekommen! Danke auch für den Makro-Code. Funktioniert auf anhieb einwandfrei und ich kann ihn nun als Basis nutzen um viele meiner Tabellen zu verkürzen und vereinfachen!


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