Anzeige
Archiv - Navigation
1468to1472
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

Makro ausführen bei Zelländerung durch den User

Makro ausführen bei Zelländerung durch den User
11.01.2016 14:06:44
Huenerheld
Moin Moin,
ich benötige bitte Hilfe bezüglich der Überprüfung der Änderung einer Zelle.
Und zwar habe ich das Problem, dass ich Zellen habe, deren Inhalt ich auf Duplikate überprüfe, allerdings auch ein Marko, dass die Zellen vorher füllt. Da es sich um vielen Einträge handelt, "hängt" sich das Marko nun leider auf, da nach jedem Eintrag das Makro für die Änderung einer Zelle ausgeführt wird. Dazu nutze ich:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("D2:X2")) Is Nothing Then
...
Meine Frage ist nun ob ich das solange unterbrechen kann, wie das Makro aktiv ist, bzw. ob man den Code so verändern kann, dass dieser nur bei Usereingabe ausgeführt wird?
Vielen Dank im Voraus für die Hilfe und
Mit freundlichen Grüßen
Huenerheld

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

Betreff
Datum
Anwender
Anzeige
Prozedur stoppen
11.01.2016 16:40:48
Beni
Hallo
Dim ausserhalb der Prozedur setzen
Dim Abfrage
Private Sub Worksheet_Change(ByVal Target As Range)
If Abfrage = False Then Exit Sub
MsgBox "ggg"
End Sub
Sub test()
Abfrage = False
For i = 1 To 10
Cells(i, 1) = i
Next i
Abfrage = True
End Sub
Gruss Beni

AW: Prozedur stoppen
11.01.2016 17:01:57
Daniel
Hi
du kannst die automatische Ausführung dieser Events wie Change oder SelectionChange im Code verhindern, wenn du den Befehl: Application.EnableEvents = False verwendest.
nach diesem Befehl werden die Eventmakros nicht mehr ausgeführt.
um sie wieder zu aktivieren, führe den Befehl: Application.EnableEvents = True aus.
dieser muss auf jeden Fall im Makro vor dem Ende vorhanden sein, weil die zuletzte gemachte Einstellung nach Makroende erhalten bleibt und nicht automatisch zurückgesezt wird.
Sollte es mal passieren, dass dieser Befehl unterbleibt (bspw nach einem Fehlerabbruch oder du beendest einen Test im Einzelstepmodus vorzeitig) so kannst du ihn im DIREKTFENSTER eingeben um die Events wieder zu aktivieren.
die von Beni beschriebene Methode mit der Variablen ist zwar auch möglich, aber aufwendig.
Sie ist nur nötig, wenn du das gleiche Problem bei den Eventmakros einer Userform hast, weil diese nicht auf das Application.EnableEvents reagieren, oder wenn mehrere Eventmakros gleichzeitig aktiv werden, von denen du nur bestimmte, aber nicht alle außer Kraft setzen willst (wobei das eher selten vorkommen sollte)
Gruß Daniel
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige