Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Private Sub Worksheet_Change deaktivieren Wie?

Private Sub Worksheet_Change deaktivieren Wie?
31.01.2005 14:23:59
banano
ich nutze Private Sub Worksheet_Change(ByVal Target As Excel.Range)
um Anderungen auf einem sheet pro zeile mit einem timestamp zu versehen.
wenn ich das Blatt per makro befülle möchte ich so lange das Makro läuft die Fkt. Private Sub Worksheet_Change(ByVal Target As Excel.Range)auf dem Blatt auf das kopiert wird deaktivieren
wie kann ich das umsetzten ?
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Private Sub Worksheet_Change deaktivieren Wie?
u_
Hallo,
an den Anfang deines Makros:
Application.EnableEvents=False
am Ende wieder auf True setzen.
Gruß
AW: Private Sub Worksheet_Change deaktivieren Wie?
31.01.2005 14:33:55
banano
Danke es funktioniert!
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
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 deaktivieren in Excel VBA


Schritt-für-Schritt-Anleitung

Um die Funktion Private Sub Worksheet_Change(ByVal Target As Excel.Range) in einem Excel VBA-Makro zu deaktivieren, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Finde das entsprechende Arbeitsblatt: Wähle das Arbeitsblatt aus, in dem du die Worksheet_Change-Funktion verwenden möchtest.

  3. Füge den Code ein: Implementiere den folgenden Code in dein Makro:

    Sub MeinMakro()
       ' Deaktiviert das Worksheet_Change-Ereignis
       Application.EnableEvents = False
    
       ' Deine Logik hier
       ' ...
    
       ' Aktiviert das Worksheet_Change-Ereignis wieder
       Application.EnableEvents = True
    End Sub
  4. Testen: Führe dein Makro aus, um sicherzustellen, dass das Worksheet_Change-Ereignis während der Ausführung des Makros deaktiviert ist.


Häufige Fehler und Lösungen

  • Problem: Das Makro scheint nicht zu funktionieren.

    • Lösung: Stelle sicher, dass Application.EnableEvents auf False gesetzt wird, bevor die Hauptlogik deines Makros ausgeführt wird. Vergiss nicht, es am Ende wieder auf True zu setzen.
  • Problem: Änderungen auf dem Arbeitsblatt werden nicht erkannt.

    • Lösung: Überprüfe, ob das Worksheet_Change-Ereignis korrekt implementiert ist und dass Application.EnableEvents wieder aktiviert wird.

Alternative Methoden

Eine alternative Methode zur Deaktivierung des Worksheet_Change-Ereignisses ist die Verwendung von Worksheet_Activate und Worksheet_Deactivate. Hier ist ein Beispiel:

Private Sub Worksheet_Activate()
    Application.EnableEvents = True
End Sub

Private Sub Worksheet_Deactivate()
    Application.EnableEvents = False
End Sub

Diese Methode kann nützlich sein, wenn du das Ereignis basierend auf der Aktivierung oder Deaktivierung des Arbeitsblatts steuern möchtest.


Praktische Beispiele

Hier ein einfaches Beispiel, wie man die Worksheet_Change-Funktion mit einem Timestamp kombiniert:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("A1:A10")) Is Nothing Then
        Cells(Target.Row, 2).Value = Now ' Timestamp in Spalte B
    End If
End Sub

In diesem Beispiel wird ein Timestamp in Spalte B eingefügt, wenn eine Änderung in den Zellen A1:A10 vorgenommen wird. Wenn du jedoch ein Makro ausführst, das diese Zellen befüllt, solltest du vorher Application.EnableEvents auf False setzen.


Tipps für Profis

  • Code optimieren: Nutze If-Bedingungen, um nur die relevanten Bereiche für das Worksheet_Change-Ereignis zu überwachen.
  • Fehlerbehandlung: Implementiere On Error Resume Next, bevor du das Ereignis deaktivierst. So kannst du sicherstellen, dass dein Code auch bei Fehlern nicht abstürzt.
  • Debugging: Verwende Debug.Print innerhalb deines Codes, um den Ablauf zu verfolgen, besonders wenn du mit mehreren Private Subs arbeitest.

FAQ: Häufige Fragen

1. Frage
Wie kann ich mehrere Worksheet_Change-Ereignisse in einem Arbeitsblatt verwalten?
Antwort: Du kannst mehrere Private Sub Worksheet_Change-Ereignisse definieren, aber achte darauf, dass sie nicht in Konflikt miteinander geraten. Verwende Select Case, um verschiedene Fälle zu behandeln.

2. Frage
Kann ich Application.EnableEvents in einem anderen Makro setzen?
Antwort: Ja, du kannst Application.EnableEvents in jedem Makro steuern, aber achte darauf, dass es am Ende wieder aktiviert wird, um unerwartete Verhaltensweisen zu vermeiden.

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