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

Forumthread: Makro soll automatisch starten

Makro soll automatisch starten
23.02.2009 12:01:09
Karsten
Hallo...
ich möche, dass folgender Makro automatisch startet, wenn die Datei geöffnet wird.
varResult = Application.Match(CDbl(Date), Range("A:A"), 0)
If IsNumeric(varResult) Then Application.GoTo Cells(varResult, ActiveCell.Column)
Kann mir jemand weiterhelfen? Danke.
Gruß
Karsten
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro soll automatisch starten
23.02.2009 12:04:30
Flo
Hallo,
unter "Dieser Arbeitsmappe"
---------------------------

Sub Workbook_Open()
'dein Code
End Sub


--------------------------
eintragen und schon startets beim Öffnen

Workbook_Open
23.02.2009 12:08:47
Renee
Hi Karsten,
Im Prinzip bietet sich dafür da Workbook_Open Ereignis in dieser DieseArbeitsmappe an.
Im VBE Doppelklicken DieseArbeitsmappe und Code einfügen.
Allerding fehlt an deinem Code eine richtige Referenzierung der Objekte, weil das Tabellenblatt nicht angesprochen ist.
Also statt nur Range("A:A") ... Tabelle1.Range("A:A")
Auf ActiveCell kannst du nicht zugreifen, es sei den du aktivierst zuerst das Blatt.
Ich würde den Code eher im _Activate Ereignis des entsprechenden Tabellenblatt sehen.
GreetZ Renée
Anzeige
AW: Workbook_Open
24.02.2009 09:03:34
Karsten
Hallo Renée, hallo Flo,
ich finde "DieseArbeitsmappe" nicht. Wenn ich Microsoft Visuak Basic geöffnet habe, wo finde ich da "DieseArbeitsmappe"?
Ich glaube, ich brauch es idiotensicher.
Gruß Karsten
Visual Basic <> VBA!
24.02.2009 09:26:14
Renee
Hi Karsten,
Hier, in diesem Forum, reden wir höchst selten von Microsoft Visual Basic, aber fast immer von Visual Basic for Applications.
Den VBA-Editor erreichst du so:
Bei offenen Excel: Alt-F11
Im Projektfenster - DieseArbeitsmappe doppelklicken
Da du aber k.A. von VBA hast, versuchst du besser mal zu erklären, was du überhaupt machen willst und lädst ggf. eine Beispielmappe mit Erläuterungen hoch.
GreetZ Renée
Anzeige
AW: Visual Basic <> VBA!
24.02.2009 09:51:19
Karsten
Hallo Renée,
danke, habe es gerafft. Mir geht es nur darum eine bestimmte Tabelle zu öffnen.
Gruß
Karsten
AW: Bestimmte Tabelle öffnen.
24.02.2009 09:56:32
Renee
Hi Karsten,
Der Code in DieserArbeitsmappe würde automatisch immer die Tabelle1 öffnen:

Private Sub Workbook_Open()
Tabelle1.Activate
End Sub


GreetZ Renée

Anzeige
AW: Bestimmte Tabelle öffnen.
24.02.2009 10:12:10
Karsten
Hallo Renée,
Danke
AW: Bestimmte Tabelle öffnen.
24.02.2009 10:33:02
Karsten
Hallo Renée,
also, ich möchte automatisch den Makro "zu_Termine" starten. Dieser öffnet die Seite "Lehrbericht" und fährt danach die Terminespalte an.
Mit:

Private Sub gehe_zu_Termine()
Application.Run "zu_Termine"
End Sub


liege ich daneben.
Wie geht es richtig?
Gruß
Karsten

Anzeige
AW: Bestimmte Tabelle öffnen.
24.02.2009 10:55:13
Renee
Hi Karsten,
Der Name Workbook_Open() ist ein (von VBA) reservierter Name und kennzeichnet eine sogenannte Ereignis-Prozedur. D.h. Alles was innerhalb dieses Makros abläuft wird automatische ausgeührt, wenn die Arbeitsmappe geöffnet wird. Darum muss dieses Makro auch im Klassenmodul von DieserArbeitsmappe liegen. Wenn du nun ein Makro aufrufen willst, dass du in ein normales Modul der Arbeitsmappe gelegt hast dann kannst du dieses innerhalb der Eventprozedur aufrufen:

Private Sub Workbook_Open()
zu_Termine
End Sub


Aber Vorsicht: Der Code in zu_termine muss die Tabellen und Zellen richtig referenzieren!
Die meisten VBA Anfänger machen da die Fehler. Darum lies mal das Tutorial: Achtung Makrorekorder oder Wer selektiert denn da?
Application.Run wird nur in den seltenen Fällen gebraucht, in denen ein Makro, das nicht zur eigenen Arbeitsmappe gehört (oder unter noch exotischeren Umständen gebraucht).
GreetZ Renée

Anzeige
AW: Bestimmte Tabelle öffnen.
24.02.2009 11:10:42
Karsten
Hallo Renée,
klappt. Danke!
Gruß
Karsten

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro automatisch beim Öffnen von Excel ausführen


Schritt-für-Schritt-Anleitung

Um ein Excel-Makro automatisch auszuführen, wenn die Datei geöffnet wird, kannst du das Workbook_Open Ereignis in VBA nutzen. Folge diesen Schritten:

  1. Öffne Excel und lade die Arbeitsmappe, in der das Makro automatisch starten soll.

  2. Drücke Alt + F11, um den VBA-Editor (Microsoft Visual Basic für Applikationen) zu öffnen.

  3. Im Projektfenster findest du den Eintrag für deine Arbeitsmappe. Doppelklicke auf DieseArbeitsmappe.

  4. Füge den folgenden Code ein:

    Private Sub Workbook_Open()
       ' Hier den Code für dein Makro einfügen
       Call zu_Termine  ' Beispiel zur Ausführung eines Makros
    End Sub
  5. Speichere die Datei als "Excel-Arbeitsmappe mit Makros" (*.xlsm).

  6. Schließe den VBA-Editor und öffne die Arbeitsmappe erneut. Dein Makro sollte jetzt automatisch ausgeführt werden.


Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass die Datei im richtigen Format (*.xlsm) gespeichert ist und dass die Makros aktiviert sind. Gehe zu Datei -> Optionen -> Trust Center -> Einstellungen für das Trust Center und aktiviere Makros.
  • Fehler: Fehlermeldung bei der Ausführung des Makros.

    • Lösung: Überprüfe deinen Code auf Fehler und achte darauf, dass alle Bereiche korrekt referenziert sind. Beispielsweise sollte Range("A:A") durch Tabelle1.Range("A:A") ersetzt werden, wenn du auf ein bestimmtes Blatt zugreifen möchtest.

Alternative Methoden

Wenn du ein Excel-Makro automatisch ausführen möchtest, ohne die Datei zu öffnen, gibt es einige Alternativen:

  • Task Scheduler: Du kannst eine Excel-Datei mit einem Makro zu einem bestimmten Zeitpunkt automatisch öffnen, indem du den Windows Task Scheduler nutzt. Erstelle eine Aufgabe, die Excel öffnet und die Datei lädt.

  • Auto_Open-Methode: Eine andere Möglichkeit ist die Verwendung der Auto_Open-Prozedur, die ähnlich wie Workbook_Open funktioniert, aber nicht an eine bestimmte Arbeitsmappe gebunden ist. Der Code könnte so aussehen:

    Sub Auto_Open()
       Call zu_Termine
    End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du ein Makro automatisch starten kannst:

  1. Makro zum Wechseln zu einem bestimmten Blatt:

    Private Sub Workbook_Open()
       Tabelle1.Activate
    End Sub
  2. Ein Makro zur Aktualisierung von Daten:

    Private Sub Workbook_Open()
       Call DatenAktualisieren
    End Sub
  3. Ein Makro zur Formatierung eines bestimmten Bereichs:

    Private Sub Workbook_Open()
       With Tabelle1.Range("A1:A10")
           .Interior.Color = RGB(255, 255, 0) ' Gelb
       End With
    End Sub

Tipps für Profis

  • Ereignisprozeduren: Nutze das Workbook_Open Ereignis, um Makros zu starten, die beim Öffnen der Datei wichtig sind. Dies ist besonders nützlich für Dashboards oder Berichte.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinen Makros, um sicherzustellen, dass sie auch bei unerwarteten Problemen nicht abstürzen.

  • Code modularisieren: Halte deinen Code modular, indem du wiederverwendbare Makros in separaten Modulen speicherst und sie von den Ereignisprozeduren aus aufrufst.


FAQ: Häufige Fragen

1. Wie kann ich ein Makro automatisch ausführen, ohne die Datei zu öffnen?
Es ist nicht möglich, ein Makro aus einer geschlossenen Excel-Datei auszuführen. Du kannst jedoch den Windows Task Scheduler verwenden, um die Datei zu einem bestimmten Zeitpunkt zu öffnen.

2. Was ist der Unterschied zwischen Workbook_Open und Auto_Open?
Workbook_Open ist ein Ereignis, das spezifisch für eine Arbeitsmappe ist, während Auto_Open in jedem Modul verwendet werden kann. Es wird aufgerufen, wenn die Datei geöffnet wird, sofern keine anderen Ereignisse definiert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige