Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1480to1484
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
Inhaltsverzeichnis

Fehler in Macro

Fehler in Macro
21.03.2016 13:01:46
Erik
Hallo zusammen,
habe folgendes Macro:
If Not Intersect(Target, Range("I7:I200")) Is Nothing Then
If WorksheetFunction.CountBlank(Cells(Target.Row, 9)) = 1 Then
Cells(Target.Row, 13).ClearContents
Rows(Target.Row).Interior.Pattern = xlNone
End If
End If
If Not Intersect(Target, Range("I7:I200")) Is Nothing And Target.Count = 1 Then
Range("M" & Target.Row) = ("a")
Range("N" & Target.Row).Select
Selection.ClearContents
End If
Es soll so funktionieren, das wenn eine Eingabe in Feld I erfolgt ein a in Spalte M gesetzt wird und Feld N gelöscht wird.
Das funtkioniert soweit auch, allerdings soll wenn Feld I gelöscht wird auch Feld 13 gelöscht werden das funktioniert zwar durch oberes Macro, aber dann wird gleichzeitig das untere Macro aktiviert und er setzt das "a" wieder.
Wie kann ich das abändern ?
Gruß
Erik

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler in Macro
21.03.2016 13:10:36
Steve
Hallo Erik,
dann setze den oberen Code-Abschnitt zwischen folgende Zeilen:
Application.EnableEvents = False
Application.EnableEvents = True

Damit können während der Abarbeitung deines Ereignisses keine erneuten Ereignisse ausgelöst werden. Sprich, der obere Abschnitt löscht etwas, und löst erneut das komplette Makro, speziell den unteren Teil nicht mehr aus.
lg Steve

AW: Fehler in Macro
21.03.2016 13:11:02
Daniel
Hi
die Eventmakro (Change, Selection_Change) können sich auch selbst aufrufen, dh wenn du innerhalb des Change-Event-Makros einen Zellwert änderst, dann wird das Change-Event-Makro erneut gestartet mit dieser geänderten Zelle als Target, danach wird dann das alte Change-Event-Marko fortgesetzt.
Wenn das nicht passieren soll, kann man die automatische Ausführung der Eventmakros mit dem Befehl:
Application.EnableEvents = False
ausschalten.
die Events bleiben dann solange deaktiviert, bis du sie wieder mit
Application.EnableEvent = True
wieder einschaltest.
Beachte, dass hier die zuletzt gemachte Einstellung nach Makroende erhalten bleibt!
dh bei Makroende musst du die Events auf jeden Fall wieder aktivieren, sonst funktioniert deine Datei nicht mehr richtig.
Sollte es mal passieren, dass die Events nicht aktiviert werden (z.B. weil du es vergessen hast oder weil das Makro mit einem Fehler abgebrochen wurde), kannst du die Events aktiviern, indem du den Befehl dazu im Direkfenster eingibst.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige