Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Worksheet_Activate

Forumthread: Worksheet_Activate

Worksheet_Activate
18.06.2008 10:49:44
serge
Hallo Leute
Ich habe in der Tabelle1 mit Private Sub Worksheet_Activate() ein Makro hinterlegt das ablaufen soll wenn die Tabelle angklickt wird.
Aus alle anderen Tabellen (ca 50 Stück) in der selben Datei habe ich einen Knopf um auf Tabelle1 zurück zu gehen (Sheets("Tabelle1").Select), kann ich in diesem Makro das Private Sub Worksheet_Activate() momentan desaktivieren?
Danke für Euere Hilfe
Serge

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_Activate
18.06.2008 10:54:22
Andi
Hi,
so:

Private Sub CommandButton1_Click()
Application.EnableEvents = False
Sheets("Tabelle1").Activate
Application.EnableEvents = True
End Sub


Schönen Gruß,
Andi

AW: Worksheet_Activate
18.06.2008 10:54:00
Ramses
Hallo
Sorry, ich versteh kein Wort
"...Ich habe in der Tabelle1 mit Private Sub Worksheet_Activate() ..."
"...um auf Tabelle1 zurück zu gehen ..../ ...kann ich in diesem Makro das Private Sub Worksheet_Activate() deaktivieren..."
"Worksheet_Activate"
Läuft nur für ein spezifisches Tabellenblatt und gilt nicht für alle Blätter. Also musst du das einfach entfernen in Tabelle1
Ansonsten mal den Code zeigen den du verwendest
Gruss Rainer

Anzeige
AW: Worksheet_Activate
18.06.2008 10:58:00
Andi
Hi,
ich glaube, dass dieses Makro immer dann ablaufen soll, wenn die Tabelle angeklickt wird, außer wenn sie per Button von einem anderen Blatt aus angesteuert wird.
Schönen Gruß,
Andi

AW: Worksheet_Activate
18.06.2008 11:02:17
Ramses
Hallo
"...außer wenn sie per Button von einem anderen Blatt aus angesteuert wird..."
Lassen wir uns mal überraschen,... aber bei so einem Konstrukt, wenn das denn stimmen würde, stimmt da nach meinem Empfinden was grundsätzlich nicht.
Gruss Rainer

Anzeige
AW: Worksheet_Activate
18.06.2008 10:58:00
Matthias
Hi
Application.EnableEvents = False
Sheets("Tabelle1").Select
Application.EnableEvents = True
Gruß Matthias

Danke Andi und Mathias
18.06.2008 11:17:00
serge
Das war es!
Was ich wollte sieht ein wenig spanisch aus, aber es hat seinen Sinn im Aufbau meiner Datei.
Danke Serge
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Worksheet Activate in Excel VBA effizient nutzen


Schritt-für-Schritt-Anleitung

Um das Private Sub Worksheet_Activate() in Excel VBA effizient zu nutzen, folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle das entsprechende Arbeitsblatt aus:

    • Im Projektfenster suche das Arbeitsblatt, auf dem du das Makro implementieren möchtest (z.B. Tabelle1).
  3. Füge das Makro hinzu:

    • Klicke doppelt auf das Arbeitsblatt und füge den folgenden Code hinzu:
    Private Sub Worksheet_Activate()
       ' Dein Code hier
    End Sub
  4. Deaktiviere das Makro temporär:

    • Wenn du das Makro vorübergehend deaktivieren möchtest, nutze den folgenden Code in einem Button:
    Private Sub CommandButton1_Click()
       Application.EnableEvents = False
       Sheets("Tabelle1").Activate
       Application.EnableEvents = True
    End Sub
  5. Schließe den VBA-Editor und teste die Funktionalität.


Häufige Fehler und Lösungen

  • Fehler: Das Makro läuft nicht:

    • Stelle sicher, dass das Private Sub Worksheet_Activate() korrekt implementiert ist und keine Syntaxfehler vorliegen.
  • Lösung: Anwendung von Application.EnableEvents:

    • Wenn das Makro nicht wie gewünscht funktioniert, überprüfe, ob Application.EnableEvents auf False gesetzt ist, bevor du zu einem anderen Blatt wechselst.
  • Fehler: Das Makro wird unerwartet ausgelöst:

    • Das kann passieren, wenn du zwischen Blättern wechselst. Achte darauf, wann und wie das Makro aktiviert wird.

Alternative Methoden

Falls du die Funktionalität des Worksheet_Activate auf andere Weise umsetzen möchtest, kannst du auch:

  • Worksheet_Change verwenden:

    • Dies wird ausgelöst, wenn sich der Inhalt einer Zelle ändert. Es kann hilfreich sein, um dynamische Inhalte zu aktualisieren.
  • Worksheet_SelectionChange verwenden:

    • Diese Methode reagiert auf die Auswahländerung in einem Arbeitsblatt und kann für spezifischere Interaktionen genutzt werden.

Praktische Beispiele

  1. Einfaches Beispiel:

    • Zeige eine Nachricht, wenn das Arbeitsblatt aktiviert wird:
    Private Sub Worksheet_Activate()
       MsgBox "Willkommen auf Tabelle1!"
    End Sub
  2. Daten aktualisieren:

    • Aktualisiere einen bestimmten Bereich beim Aktivieren:
    Private Sub Worksheet_Activate()
       Range("A1").Value = "Daten aktualisiert am " & Now
    End Sub

Tipps für Profis

  • Verwende Fehlerbehandlung:

    • Implementiere On Error Resume Next, um mögliche Fehler beim Ausführen deines Makros zu ignorieren.
  • Testen in einer Kopie:

    • Teste deine VBA-Programme in einer Kopie deiner Arbeitsmappe, um Datenverluste zu vermeiden.
  • Dokumentation:

    • Kommentiere deinen Code gut, um die Wartung und das Verständnis zu erleichtern, besonders wenn du Private Sub Worksheet_Activate() in mehreren Blättern verwendest.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Worksheet_Activate und Worksheet_Change? Worksheet_Activate wird ausgelöst, wenn das Arbeitsblatt aktiviert wird, während Worksheet_Change bei Änderungen in den Zellen des Arbeitsblatts reagiert.

2. Kann ich Worksheet_Activate in mehreren Blättern verwenden? Ja, du kannst Private Sub Worksheet_Activate() in jedem Arbeitsblatt unabhängig voneinander implementieren.

3. Wie deaktiviere ich Worksheet_Activate temporär? Verwende Application.EnableEvents = False, um das Makro vorübergehend zu deaktivieren, während du von einem Blatt zu einem anderen wechselst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige