Office - Word, Excel und Co. 9.715 Themen, 41.015 Beiträge

Excel Makros anders starten

Uwe Westhagen / 8 Antworten / Flachansicht Nickles

Gibt es irgend eine Möglichkeit ein Makro anders zu starten. Es ist ja nur der Weg über Makro ausführen direkt unter Makros bekannt, bzw. die Verknüpfung über einen Schalter. Ich denke aber dabei an eine völlig andere Möglichkeit der Aktivierung eines Makros z.B. durch Eingabe eines bestimmten Wertes in eine Zelle, der dann über eine Funktion wie z.B. "wenn" ein Makro automatisch starten kann.
Ich vermute meinerseits dass dies eher ein Wunschtraum von mir ist oder gibt es da doch einen Weg? Ich wäre wirklich happy

Vielen Dank und Gruß
Uwe

bei Antwort benachrichtigen
Sovereign Sylvia Uwe Westhagen „Excel Makros anders starten“
Optionen

Hi Uwe,

zunächst müsste mal untersucht werden, wie eine bestimmte Zelle dauerhaft überwacht werden kann, um Änderungen in der Zelle zu erfassen. Ich wurde durch dein Posting neugierig und habe mich nach Jahren mal wieder mit VBA und dem Visual Basic Editor bzw. Makro-Editor beschäftigt. Und siehe da: Es gibt einen Weg.
Der Weg ist das Ausnutzen von Events (Ereignisse) (ich weisz jetzt nicht, wieviel VBA-Kenntnisse und welche Excel Version du hast; ich benutze Excel 2000). Alle Objekte innerhalb eines Excel-Workbooks (*.XLS) haben solche Events, die bei bestimmten Bedingungen, dann aber immer automatisch ausgeführt werden. Eines dieser Objekte ist das Worksheet, also das Blatt mit den Zellen.
Wählt man im Makro-Editor ein Sheet aus, befindet sich am oberen Rand des Teils, in dem Code geschrieben wird, eine Klappliste mit den Objekten und eine Klappliste mit den Events, die für das gewählte Objekt zur Verfügung stehen. Bei Worksheets ist das z.B. das Change-Event mit der Kopfzeile "Private Sub Worksheet_Change(ByVal Target As Range)". Dieses Event wird bei allen
Änderungen in Zellen auf dem Worksheet ausgelöst. Jetzt musst du nur noch die Bedingung programmieren und sagen, was bei deren Erfüllung passieren soll.

Ein einfaches Beispiel wäre:
################################################
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Row = 5 Then
MsgBox Target.Text 'Ausgabe des Zellenwertes in einer MessageBox
End If
End Sub
################################################
Hier werden manuelle Änderungen des Inhaltes in Zelle "B5" abgefragt. Manuelle Änderungen in einer Zelle werden erst nach Betätigen der Enter-Taste erfasst; hier sind Zelleninhalt und angezeigter Inhalt identisch.

Hast du in der Zelle aber eine Formel, so sind Zelleninhalt (Formel) und angezeigter Wert (Formelergebnis) nicht mehr identisch, und eine Veränderung des Formelergebnisses löst kein Change-Event aus. Hier musst du das "Calculate"-Event benutzen, um die (sichtbaren) Veränderungen des Ergebnisses zu erfassen:
##############################
Private Sub Worksheet_Calculate()
MsgBox Me.Cells(5, 2)
End Sub
##############################

Die Programmiersprache in VBA ist english, egal welche Sprachfassung das installierte Excel hat.

Hat das als kleiner Einstieg geholfen?

HAND :-)
Sylvia

Mein sz streikt heute wieder ------ Nobody is perfect, and we prove it every day.
bei Antwort benachrichtigen