Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel VBA Makro aus starten





Frage

Hallo Excel Experten, Ich starte Excel VBA Makros immer mittels Tastenkombination oder Schaltfläche. Nun meine Frage: Wie ist die richtige Schreibweise, wenn ich stattdessen ein existierendes Makro z.B. mit dem Namen Makro5 durch eine WENN- Bedingung starten möchte ? Wenn also z.B. im Feld C3 folgende Formel stünde: WENN((A2)>55;Makro5;"") Damit soll erreicht werden, daß wenn die Zahl in Feld A2 den Wert 55 überschreitet, Makro5 gestartet wird. Leider bekomme ich immer eine Fehlermeldung....

Antwort 1 von nighty

hi olli :)

wie gewuenscht :)

gruss nighty

einzufuegen alt f11(vbeditor)/projektexplorer/DeineTabelle

zelle a3 wird geprueft und gegebenenfalls bei wertveraenderung das makro01 gestartet

Private Sub Worksheet_Calculate()
Application.EnableEvents = False
If fest <> Range("A3") Then
fest = Range("A3")
makro01
End If
Application.EnableEvents = True
End Sub


einzufuegen alt f11(vbeditor)/einfuegen/modul

Sub makro02()
Public fest As Variant
End Sub


Antwort 2 von OLLI-P

Hallo nighty,

Danke für den Tip, aber was soll Sub makro02() ??
Und die Zeile <Public fest As Variant> bringt leider eine Fehlermeldung.

Außerdem suche ich eine Möglichkeit eine Zelle permanent (z.B. alle 5 Sekunden) zu überwachen.
Dein Programm muß ich jedoch immer wieder neu aufrufen, denn es läuft ja nur einmal ab.

Mit

Application.OnTime Now + TimeValue("00:00:05"), procedure:="Makro01"

habe ich leider auch das Problem, daß Makro01 nicht automatisch alle 5 Sekunden startet, ohne daß ich irgend eine Eingabe machen muß.

Trotzdem vielen Dank für den Hinweis auf
Application.EnableEvents .




Antwort 3 von nighty

hi olli :)

makro02 ist eine definierung einer globalen variablen,in dieser wird der wert von a3 festgehalten,wobei eine formel sich in a3 natuerlich befinden muss,aendert sich nun der wert der formel in a3 ,erfasst durch das calculate ereignis so wird das makro01 gestartet was du natuerlich erstellen musst,wenn der typ variant falsch ist musst du natuerlich den beduefnissen anpassen,zudem nichts gestartet werden muss da es ja das calculate ereignis schon macht,du musst es natuerlich auch einfuegen wie beschrieben ist dann geht alles vollautomatisch,es gibt eigentlich nichts was da zu starten waere.

gruss nighty

Antwort 4 von nighty

hi olli :)

dies ist auch kein tip gewesen sondern eine 100% kommplettloesung anhand deiner fragestellung erstellt.

gruss nighty

Antwort 5 von Nepumuk

Hallo Olli,
durch Formeln kannst du nur Funktionen starten, keine Subroutinen. Außerdem unterliegen sie gewissen einschränkungen. Du kannst z.B. keine Zellwerte anderer Zellen ändern, die Find-Methode schlägt (bis Excel2003) fehl und einiges andere mehr.

Um eine Funktion aufzurufen benötigst du folgende Syntax:

=WENN(A2>55;makro5();"")

Gruß
Nepumuk

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: