Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
556to560
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
556to560
556to560
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro starten

Makro starten
01.02.2005 14:53:24
Thomas
Ich habe ein paar Makros erstellt die alle gut funzen. jetzt möchte ich aus einer Formel im Tabellenblatt heraus ein bestimmtes Makro starten. Wie kann ich das Lösen. Mein Gedankenansatz geht so:
=wenn(A1=10000;startemakro("makro1");startemakro("makro2")) 'P.S.: nur Schematisch da ich noch keine Lösung gefunden habe wie ein Makro ohne Maus oder Tastatureingabe gestartet werden kann.
Gruß
Thomas

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro starten
01.02.2005 14:58:30
Matthias
Hallo Thomas,
ist in A1 eine Formel oder wird der Wert manuell eingegeben?
Gruß Matthias
AW: Makro starten
01.02.2005 15:01:14
Thomas
Hallo Matthias,
A1 sollte das feld A1 sein wie gesagt ist nur ein Beispiel. Wenn der Wert im Feld "A1" den Wert 10000 annimmt dann soll Makro1 gestartet werden, ansonsten Makro2. Sowas brauche ich in verschiedenen Tabellen häufiger
Gruß
Thomas
AW: Makro starten
01.02.2005 15:08:23
Matthias
Hallo Thomas,
nun ja, was du brauchst, sind Ereignismakros.
Es gibt derer viele, z.B. Beim Berechnen eines Blattes, beim Öffnen einer Mappe, bei Änderung einer Zelle usw.
Wenn A1 durch eine Formel geändert wird, (also z.B. in A1 steht =B1, und B1 bekommt den Wert 10000), dann ins Tabellenblattmodul dieses:
Private Sub Worksheet_Calculate()
If [A1] = 10000 Then
MsgBox "Makro1"
Else
MsgBox "Makro2"
End If
End Sub
Wenn der Wert in A1 manuell eigegeben wird (oder über VBA), dann so:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
If [A1] = 10000 Then
MsgBox "Makro1"
Else
MsgBox "Makro2"
End If
End If
End Sub
Gruß Matthias
Anzeige
AW: Makro starten
01.02.2005 15:17:04
Thomas
Danke für die schnelle Hilfe, das ist genau das was ich gesucht hatte. (Brauche erstmal Variante 1 die andere demnächst sicher auch) Die 2. muss ich mir dann halt nur noch genauer ansehen um sie zu verstehen ;-)
Gruß
Thomas
AW: Makro starten
01.02.2005 15:23:06
Matthias
Hallo Thomas,
was dich verwirrt, ist wahrscheinlich die Zeile
If Not Intersect(Target, Range("A1")) Is Nothing Then ...
Man könnte für einzelne Zellen auch schreiben:
If Target.Address = "$A$1" oder
If Target.Address(0, 0) = "A1"
Aber dann ginge z.B. der Fall verloren, dass du einen Bereich markierst (A1 wäre auch dabei) und mit "Entf" dessen Inhalt löschst.
Intersect() bildet die Schnittmenge, und die Konstruktion
If Not Intersect(...) Is Nothing Then... heißt:
wenn die Schnittmenge nicht leer ist, dann...
Gruß Matthias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige