Seite 1 von 1

simples Makro, welches auf Zellinhalt-Aenderung reagiert

Verfasst: Do 15. Okt 2015, 19:00
von Kermit
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

Re: simples Makro, welches auf Zellinhalt-Aenderung reagiert

Verfasst: Do 15. Okt 2015, 19:47
von F3K Total
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

Re: simples Makro, welches auf Zellinhalt-Aenderung reagiert

Verfasst: Do 15. Okt 2015, 20:07
von Kermit
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!