Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Private Sub Worksheet_Change kurz deaktivieren

Private Sub Worksheet_Change kurz deaktivieren
05.04.2009 19:12:12
Karsten
Hallo,
innerhalb der Befehle unter:
Private Sub Worksheet_BeforerightClick(ByVal Target As Range, Cancel As Boolean)
wird
Private Sub Worksheet_Change(ByVal Target As Range)
aufgerufen. Ich möchte dies aber für den einen Durchlauf verhindern. Kann mir jemand weiterhelfen, wie?
Gruß
Karsten
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Private Sub Worksheet_Change kurz deaktivieren
05.04.2009 19:14:33
Hajo_Zi
Hallo Karsten,
Application.EnableEvents = False
nicht vergessen wieder einschalten.

AW: Private Sub Worksheet_Change kurz deaktivieren
05.04.2009 19:30:09
Karsten
Hallo Hajo,
Danke. An welcher Stelle muß ich wieder einschalten? Wenn unter:
Private Sub Worksheet_BeforerightClick(ByVal Target As Range, Cancel As Boolean)
der Befehl durchgelaufen ist? Mit Application.EnableEvents = True?
Gruß
Karsten
Anzeige
AW: Private Sub Worksheet_Change kurz deaktivieren
05.04.2009 19:33:43
Hajo_Zi
Hallo Karsten,
vor End Sub, falls Du nicht Exit Sub einsetzt.
Gruß Hajo
AW: Private Sub Worksheet_Change kurz deaktivieren
06.04.2009 09:53:05
Karsten
Hallo Hajo,
Danke, es geht jetzt alles.
Gruß
Karsten
AW: Private Sub Worksheet_Change kurz deaktivieren
05.04.2009 19:21:11
Gerd
Hallo Karsten,
der "RightClick" alleine löst das Worksheet_Change nicht aus.
Zeige deinen Code oder beschreibe wie Du danach weiter vorgehst.
Gruß Gerd
Anzeige
AW: Private Sub Worksheet_Change kurz deaktivieren
06.04.2009 09:50:09
Karsten
Hallo Gerd
Danke für deine Hilfe, aber es läuft schon alles.
Gruß
Karsten
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Private Sub Worksheet_Change kurz deaktivieren


Schritt-für-Schritt-Anleitung

Um den Private Sub Worksheet_Change(ByVal Target As Range) vorübergehend zu deaktivieren, kannst du die Ereignisse in VBA mithilfe von Application.EnableEvents steuern. Folge diesen Schritten:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (Alt + F11).

  2. Suche die betreffende Arbeitsblatt-Datei und öffne sie.

  3. Füge folgenden Code in das Modul ein:

    Private Sub Worksheet_BeforerightClick(ByVal Target As Range, Cancel As Boolean)
       Application.EnableEvents = False
       ' Dein Code hier
       Application.EnableEvents = True
    End Sub
  4. Stelle sicher, dass du Application.EnableEvents = True kurz vor End Sub setzt, um die Ereignisse wieder zu aktivieren, es sei denn, du verwendest Exit Sub.


Häufige Fehler und Lösungen

Fehler: Das Worksheet_Change-Ereignis wird nicht deaktiviert.
Lösung: Überprüfe, ob du Application.EnableEvents = True korrekt gesetzt hast, um sicherzustellen, dass die Ereignisse nach deiner Logik wieder aktiviert werden.

Fehler: Fehler beim Ausführen von Private Sub Worksheet_BeforerightClick.
Lösung: Stelle sicher, dass der Code im richtigen Arbeitsblatt-Modul eingefügt wurde und nicht in einem allgemeinen Modul.


Alternative Methoden

Eine alternative Methode ist die Verwendung des Worksheet_SelectionChange-Ereignisses, um die Worksheet_Change-Prozedur zu umgehen. Du kannst den Code so anpassen, dass er nur bei bestimmten Bedingungen ausgeführt wird:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        Application.EnableEvents = False
        ' Hier dein Code
        Application.EnableEvents = True
    End If
End Sub

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du das Worksheet_Change-Ereignis deaktivieren kannst, wenn eine Zelle bearbeitet wird:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$1" Then
        Application.EnableEvents = False
        ' Logik, die den Worksheet_Change nicht auslösen soll
        Application.EnableEvents = True
    End If
End Sub

In diesem Beispiel wird die Worksheet_Change-Prozedur nur für Zelle B1 deaktiviert.


Tipps für Profis

  • Nutze Kommentare in deinem VBA-Code, um die Funktionsweise zu dokumentieren.
  • Teste den Code in einer Kopie deiner Arbeitsmappe, um ungewollte Änderungen zu vermeiden.
  • Verwende Try-Catch-Mechanismen, um Fehler im Code zu handhaben und das Programm stabiler zu machen.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Ereignisse nach meinem Code wieder aktiviert werden?
Setze Application.EnableEvents = True direkt vor End Sub in deiner Prozedur.

2. Was passiert, wenn ich Application.EnableEvents = False vergesse?
Wenn du es vergisst, bleiben alle Ereignisse deaktiviert, was zu unerwartetem Verhalten in deiner Arbeitsmappe führen kann.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige