Hallo Vera,

Vera Unverzagt schrieb:

Um nicht jedes Mal das Makro von Hand aufrufen zu müssen (vergesse ich
gern so nach einem Jahr :-)), wollte ich das Makro ausführen lassen,
sobald ich das Jahr eingegeben habe und die Zelle verlasse.

Du willst das Makro nicht bei jedem Verlassen, sondern nur nach einer Änderung der Zelle ausführen.

Dafür brauchst du einen Listener für die entsprechende Zelle:

REM  *****  BASIC  *****

global oCell
global oListener

Sub AddListener
        ' add listener for cell C3

        oDoc = ThisComponent
        oSheet = oDoc.Sheets(0)
        oCell = oSheet.getCellByPosition(2,2)

oListener = CreateUnoListener( "Change_", "com.sun.star.util.XModifyListener" )

        oCell.addModifyListener( oListener )
End Sub

Sub RemoveListener
        oCell.removeModifyListener( oListener )
End Sub

Sub Change_modified( aEvent )
        MsgBox "modified"
End Sub

REM ***** End of BASIC *****

Dieser Code enthält drei Prozeduren:

AddListener nimmt einen Listener für die Zelle C3 in Betrieb, der auf eine Änderung der Zelle sensibel ist. Du solltest AddListener über Extras|Anpassen|Ereignisse beim Öffnen der Datei ausführen.

RemoveListener entfernt den Listener wieder, wenn Du ihn nicht mehr haben willst.

Die Prozedur Change_modified wird ausgeführt, wenn die Zelle geändert wurde. Hier baust Du also Deine Makroaktionen ein.

Gruß

Stefan


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Antwort per Email an