Excel: Makro automatisch ausführen

Kaefer

Mitglied
Ich habe auf einem Worksheet mehrere CheckBox. Wird nun ein Kontrollkästchen aktiviert sollen mehrer Berechnungen aktualisiert werden und, das ist der wichtigere Teil, ein Makro automatisch ablaufen. Am besten wäre, wenn im Hintergrund ein Makro ablaufen würde, das eine Änderung auf einem definierten Tabellenblatt selbständig erkennt und das Makro startet.
 

1724

Stammgast
Hallo
Um ein Makro selbständig starten zu lassen, muss ein "Ereignis" geschehen.

Ein Ereignis kann zum Beispiel sein, wenn Excel etwas neu berechnet (so glaube ich in deinem Fall).
Das Makro könnte dann so lauten:

Code:
 Private Sub Worksheet_Calculate()
MsgBox "Kaefer hat eine Berechnung vorgenommen!"
End Sub

Teste das mal.

Hilft dies?

greez
1724
 

Officer

Stammgast
Oder, für die ganze Arbeitsmappe:

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
...DeinCode...
End Sub

Was möchtest Du denn für Sachen machen? Wenn Du dann wieder Zahlen änderst, welche weitere Berechnungen ausführen, läufst Du in einen Loop...
 

Kaefer

Mitglied
Ich versuche beide Ansätze. Werde mich melden.
Das mit dem Loop ist mir schon passiert, das heisst dann hängt die Kiste. Es müsste eine Funktion sein, die erkennt wenn auf dem Tabellenblatt eine Änderung stattgefunden hat. Ohne dass ich nun einen Button anklicke soll nun ein einmal Makro ablaufen. mache ich in einer anderen Zelle eine Eingabe, oder von einer Checkbox verändert sich ein Wahrheitswert in einer Zelle, läuft das Makro wieder einmal ab.
 

1724

Stammgast
Hallo Kaefer
Das was du willst, sollte schon möglich sein. Das Makro wird auch automatisch ablaufen, sobald das Ereignis eintritt - ohne Klicken auf einen Button.

Du kannst natürlich auch die Eingaben überwachen. Du kannst sogar einen spezifischen Bereich definieren, in dem Eingaben das Makro auslösen. Das Makro könnte dann etwa so aussehen:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Bereich As Range
Set Bereich = Range("A1:A10")
If Not Intersect(Target, Bereich) Is Nothing Then
 MsgBox "Kaefer hat etwas eingegeben!"
End If

End Sub

Nun wird bei einer Eingabe im Bereich A1:A10 das Makro gestartet.

Greez
1724
 

1724

Stammgast
Wenn du mich meinst, kein Problem.
Musst einfach schreiben, was genau du willst. Ich schicke dir mal eine PN mit meiner Mailadresse.

greez
1724
 
Oben