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

Makro ausführen beim Öffnen eines Worksheets

Forumthread: Makro ausführen beim Öffnen eines Worksheets

Makro ausführen beim Öffnen eines Worksheets
24.08.2005 14:33:00
Martin
Hi Leutz,
kann mir einer behilflich sein?! Ich suche eine Möglichkeit beim Wechsel von einem Arbeitsblatt zum anderen ein Makro auszuführen. Zum Beispiel:
Tabelle1 ist geöffnet, dann wird Tabelle2 aufgerufen und vorm/beim Öffnen von Tabelle2 sollte das Makro ausgeführt werden (um Werte zu aktualisieren und zu berechnen). Dank!
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro ausführen beim Öffnen eines Worksheets
24.08.2005 14:34:29
Andi
Hi,
schreib Dein Makro ins Worksheet_Activate-Ereignis.
Schönen Gruß,
Andi
AW: Makro ausführen beim Öffnen eines Worksheets
24.08.2005 14:59:39
Martin
Hi Andi,
danke erstmal für deine rasche Antwort. Jetzt habe ich nur noch ein Problem, dass ich das Makro nur EINMAL ausführen möchte. Es scheint als würde das Worksheet_Activate ständig durchlaufen werden, und somit mein Makro auch! Noch ne Idee?
Anzeige
AW: Makro ausführen beim Öffnen eines Worksheets
24.08.2005 15:05:47
Andi
Hi,
was genau meinst Du mit 'nur einmal'? Nur einmal am Tag? Nur beim allerersten Selektieren der Tabelle?
Wenn das Makro trotz einmaliger Aktivierung immer wieder ausgeführt wird, dann aktivierst Du wahrscheinlich in Deinem Makro das Blatt nochmal, wodurch das Ereignis dann in einer Endlos-Schleife immer wieder eintritt.
Poste doch mal Deinen Code.
Schönen Gruß,
Andi
Anzeige
AW: Makro ausführen beim Öffnen eines Worksheets
24.08.2005 15:25:22
Martin
Yoo, das wars! Jetzt fehlt nur noch (ich hoffe das letzte Mal das ich Dich belästigen muss!) das die, wie oben genannte Tabelle2 auch "offen" bleibt. Jetzt springt meine Mappe immer auf das Zuletzt aktive Tabellenblatt (Tabelle1).
Im Klartext: Ich bin auf Tabelle1, klicke auf Tabelle2, dann wird mein Makro ausgeführt (nur einmal; yiippie!) und anschließend bleibt Tabelle1 auf, wo ich dann gerne auch meine Ergebnisse von Tabelle2 sehen würde.
Danke schon mal für deine rasante Hilfestellung!
Anzeige
AW: Makro ausführen beim Öffnen eines Worksheets
24.08.2005 15:31:10
Martin
Hi Andi,
hab meinen "Fehler" schon entdeckt. In dem Makro aktiviere ich verschiedene Blätter (insgesamt 6 Stk.), um von diesen Daten zu sammeln und dann in der besagten Tabelle 2 einzutragen, und dadurch entsteht wieder eine Endlosschleife.
Ich bin gerade in einem Teufelskreis, glaub ich. Vielleicht sollte ich einfach einen "Button" in Tabelle 2 zur Akualisierung einfügen.
Anzeige
AW: Makro ausführen beim Öffnen eines Worksheets
24.08.2005 15:55:56
Andi
Hi,
ich muss gestehen, dass ich jetzt nicht genau verstanden habe, was Du erreichen möchtest... :-)
Trotzdem zwei generelle Anmerkungen:
Du kannst (bzw solltest sogar) ein Tabellenblatt per Makro auch bearbeiten, ohne es zu selektieren oder zu aktivieren.
Worksheeets("Tabelle1").Select
Range("A1").Select
Selection.Copy
Kannst Du zB auch einfach so schreiben:
Worksheets("Tabelle1").Range("A1").Copy
Das is übersichtlicher, schneller und macht, wie Du wohl schon bemerkt hast, die Ereignisse besser beherrschbar...
Zum anderen kannst Du, wenn sich das selektieren tatsächlich aus irgendeinem Grund nicht vermeiden lässt, die Ereignisse ausschalten.
Das sieht dann so aus:
Application.EnableEvents = False
Worksheets("Tabelle2").Select
Application.EnableEvents = True
Vergiss aber auf keinen Fall, die Events wieder einzuschalten!
Schönen Gruß,
Andi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro beim Öffnen eines Worksheets ausführen


Schritt-für-Schritt-Anleitung

  1. Öffne Deinen Excel-Arbeitsmappe und wechsle zu dem Arbeitsblatt, in dem Du das Makro ausführen möchtest.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Im VBA-Editor kannst Du im linken Fensterbereich das entsprechende Arbeitsblatt auswählen (z. B. "Tabelle2").
  4. Wähle das Dropdown-Menü oben im Codefenster und setze es auf Worksheet.
  5. Wähle im zweiten Dropdown-Menü das Ereignis Activate. Dies erlaubt Dir, das Makro auszuführen, wenn das Arbeitsblatt aktiviert wird.
Private Sub Worksheet_Activate()
    ' Dein Makro-Code hier
End Sub
  1. Füge Deinen Makro-Code zwischen den Private Sub und End Sub-Zeilen ein.

Häufige Fehler und Lösungen

  • Problem: Das Makro wird ständig ausgeführt, wenn Du das Arbeitsblatt wechselst.

    • Lösung: Stelle sicher, dass Du das Arbeitsblatt nicht innerhalb des Makros erneut aktivierst. Verwende stattdessen direkte Referenzen auf die Zellen oder Bereiche.
  • Problem: Das Arbeitsblatt springt nach der Ausführung des Makros zurück auf das vorherige Arbeitsblatt.

    • Lösung: Du kannst das Arbeitsblatt direkt aktivieren, nachdem das Makro ausgeführt wurde, um sicherzustellen, dass es sichtbar bleibt.
Private Sub Worksheet_Activate()
    ' Dein Makro-Code hier
    Worksheets("Tabelle2").Activate
End Sub

Alternative Methoden

Wenn Du ein Makro beim Öffnen der gesamten Arbeitsmappe ausführen möchtest, kannst Du das Workbook_Open-Ereignis verwenden:

  1. Wähle im VBA-Editor "Diese Arbeitsmappe" (ThisWorkbook).
  2. Setze das Dropdown-Menü auf Workbook und das zweite auf Open.
Private Sub Workbook_Open()
    ' Dein Makro-Code hier
End Sub

Diese Methode führt das Makro automatisch aus, wenn die Arbeitsmappe geöffnet wird.


Praktische Beispiele

  1. Makro zur Datenaktualisierung: Wenn Du Daten in Tabelle2 aktualisieren möchtest, kannst Du folgendes Makro verwenden:
Private Sub Worksheet_Activate()
    ' Beispiel: Werte aus Tabelle1 in Tabelle2 kopieren
    Worksheets("Tabelle1").Range("A1:A10").Copy Destination:=Worksheets("Tabelle2").Range("B1")
End Sub
  1. Makro zur Berechnung von Werten: Um Berechnungen durchzuführen, während das Arbeitsblatt aktiviert wird:
Private Sub Worksheet_Activate()
    Range("C1").Value = Application.WorksheetFunction.Sum(Range("A1:A10"))
End Sub

Tipps für Profis

  • Vermeide die Verwendung von Select oder Activate in Deinem Makro. Stattdessen arbeite direkt mit den Objekten, um den Code effizienter und schneller zu gestalten.

  • Um Endlosschleifen zu vermeiden, deaktiviere die Ereignisse vorübergehend mit:

Application.EnableEvents = False
' Dein Code hier
Application.EnableEvents = True
  • Denke daran, die Ereignisse wieder zu aktivieren, um andere Makros nicht zu beeinflussen.

FAQ: Häufige Fragen

1. Wie kann ich ein Makro automatisch ausführen, wenn ich ein Arbeitsblatt öffne?
Du kannst das Makro im Worksheet_Activate-Ereignis platzieren, um es beim Wechsel auf das Arbeitsblatt auszuführen.

2. Was kann ich tun, wenn mein Makro beim Aktivieren des Arbeitsblattes immer wieder ausgeführt wird?
Achte darauf, dass Du innerhalb des Makros nicht das Arbeitsblatt erneut aktivierst, da dies eine Endlosschleife erzeugt. Vermeide die Verwendung von Activate und arbeite direkt mit den Objekten.

3. Kann ich ein Makro beim Öffnen der gesamten Arbeitsmappe ausführen?
Ja, nutze das Workbook_Open-Ereignis im „Diese Arbeitsmappe“-Modul, um ein Makro beim Öffnen der Arbeitsmappe auszuführen.

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