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

Forumthread: Makro automatisch ausführen bei öffnen der xls

Makro automatisch ausführen bei öffnen der xls
25.02.2009 14:52:50
Julia
Hallo,
ich möchte folgendes Makro automatisch beim öffnen der Datei ausführen
Sub import_rohdaten()
Sheets("Datenbasis").Select
Cells.Select
Selection.ClearContents
Range("A1").Select
ChDir "C:\Dokumente und Einstellungen\moi\Desktop\Pivot"
Workbooks.Open Filename:=ThisWorkbook.Path & "\rohdaten.xls"
Cells.Select
Selection.Copy
Range("A1").Select
Windows("Pivot.xls").Activate
Sheets("Datenbasis").Paste
Range("A1").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWorkbook.Save
Windows("rohdaten.xls").Activate
ActiveWindow.Close
ActiveWorkbook.Save
Sheets("Pivot1").Select
End Sub


Ich hab das Makro über alt+F11 wie folgt eingefügt (habe es auch mit rechtsklick auf der Mappe "code anzeigen" versucht)


Private Sub Workbook_Open()
import_rohdaten
End Sub


1. Es tut sich aber nichts, wo ist mein Denkfehler?
2. Gibt es auch einen Befehl das alle Pivottabellen in dieser Datei (egal welche Mappe) aktualisert werden?

Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
call import_rohdaten
25.02.2009 14:58:19
hary
Hallo
Du musst schreiben
call import_rohdaten
Gruss Hary
AW: call import_rohdaten
25.02.2009 15:00:42
Julia
Habe meinen Code wie folgt geändert:

Private Sub Workbook_Open()
Call import_rohdaten
End Sub


Beim öffnen der Datei tut sich leider nichts

AW: call import_rohdaten
25.02.2009 15:08:03
DirkP

Public Sub import_rohdaten
End Sub


oder diesen import_rohdaten in dem gleichen bereich wie workbook_open halten!
grüße

Anzeige
AW: call import_rohdaten
25.02.2009 15:29:27
Julia
Erstmal Danke für eure Mühe aber hab jetzt jede Variante ausprobiert
Es tut sich beim öffnen nichts
Muss ich in Excel irgendwas einstellen?
AW: call import_rohdaten
25.02.2009 15:12:36
Peter
Hallo Julia,
dann füge im Workbook_Open einen Stop ein

Private Sub Workbook_Open()
Stop
Call import_rohdaten
End Sub


Beim Start der Mappe sollte das Makro nun auf den Stop laufen und du kannst mit der F8-Taste Schritt für Schritt verfolgen, was dein Makro macht.
Gruß Peter

Anzeige
AW: call import_rohdaten
25.02.2009 15:29:46
Julia
Erstmal Danke für eure Mühe aber hab jetzt jede Variante ausprobiert
Es tut sich beim öffnen nichts
Muss ich in Excel irgendwas einstellen?
Makro Sicherheits-Einstellungen ? (owT)
25.02.2009 15:34:29
Renee

AW: Makro Sicherheits-Einstellungen ? (owT)
25.02.2009 15:48:16
Julia
Makrosicherheit ist auf MITTEL eingestellt
Anzeige
Auto_open versagt!
25.02.2009 15:52:59
Renee
d.h. du wirst gefragt ob du Makros aktiveren willst, Julia ?
Gibt es ev. noch andere Makros in deine Mappe.?
Wurde Application.EnableEvents = False irgendwo aufgerufen?
Wir die Mappe manuell und nicht über eine andere Mappe via Code geöffnet?
Vielleicht mal ne Beispielmappe hochladen.
GreetZ Renée
Anzeige
AW: Auto_open versagt!
25.02.2009 16:06:25
Julia
Hi Rene,
hier die Probedateien
https://www.herber.de/bbs/user/59770.zip
Im Ordner Beispiel sind 2 Dateien.
Über den Button Import in der Datei Pivot.xls wird die rohdaten.xls geöffnet und der Inhalt in das Tabellenblatt Datenbasis von Pivot.xls kopiert
Das Makro klappt wunderbar
Ich möchte jetzt folgendes:
1.Sobald ich die Datei Pivot.xls öffne soll das Makro import_rohdaten automatisch ausgeführt werden.
2. Alle Pivot-tabellen in Pivot.xls sollen sich aktualisieren
Eine Idee?
Anzeige
AW: Auto_open versagt!
25.02.2009 16:52:57
Peter
Hallo Julia,
dann füge in die Mappe Pivot.xls in DieseArbeitsmappe folgendes Ereignis-Makro ein:
Option Explicit

Private Sub Workbook_Open()
Call import_rohdaten
End Sub


Speicher die Mappe, schließe sie und ruf sie neu auf.
Gruß Peter

Anzeige
Private Sub Workbook_Open() versagt!
25.02.2009 16:56:23
Julia
Hallo Peter,
habe das alles, leider ohne Erfolg versucht
AW: Private Sub Workbook_Open() versagt!
25.02.2009 17:33:35
Peter
Hallo Julia,
bei mir funktioniert das aber - siehe https://www.herber.de/bbs/user/59778.zip
Gruß Peter
Anzeige
Danke es geht :)
26.02.2009 06:55:18
Julia
Vielen Dank an euch beide
Weiss jetzt wo mein Denkfehler war vielen DANK!!!!!

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro automatisch ausführen beim Öffnen der Excel-Datei


Schritt-für-Schritt-Anleitung

Um ein Excel VBA Makro beim Öffnen einer Datei automatisch auszuführen, gehe folgendermaßen vor:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Füge das Makro ein:

    • Navigiere im Projekt-Explorer auf der linken Seite zu DieseArbeitsmappe deiner Datei.
    • Doppelklicke auf DieseArbeitsmappe, um den Code-Editor zu öffnen.
    • Füge den folgenden Code ein, um das Makro import_rohdaten beim Öffnen der Datei auszuführen:
    Private Sub Workbook_Open()
       Call import_rohdaten
    End Sub
  3. Speichere die Datei:

    • Speichere die Datei als Excel-Arbeitsmappe mit Makros (.xlsm).
  4. Schließe und öffne die Datei:

    • Schließe die Datei und öffne sie erneut. Das Makro sollte jetzt automatisch ausgeführt werden.

Häufige Fehler und Lösungen

  • Makro wird nicht ausgeführt:

    • Überprüfe, ob die Makrosicherheit in Excel richtig eingestellt ist. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen und wähle eine Option, die die Ausführung von Makros erlaubt.
  • Falscher Code:

    • Stelle sicher, dass der Code zum Aufrufen des Makros korrekt ist. Verwende Call import_rohdaten und nicht nur import_rohdaten.
  • Speicherort und Dateinamen:

    • Überprüfe, ob der Dateipfad und die Dateinamen im Makro korrekt sind.
  • Fehlende Stop Anweisung:

    • Füge einen Stop Befehl in den Workbook_Open Code ein, um den Ablauf zu pausieren und den Code Schritt für Schritt zu überprüfen.

Alternative Methoden

  • Auto_Open: Du kannst auch die Auto_Open Methode verwenden, um ein Makro beim Öffnen der Datei auszuführen. Füge dazu den folgenden Code in ein Modul ein:

    Sub Auto_Open()
       Call import_rohdaten
    End Sub
  • Excel-VBA-Funktion für das Starten von Makros: Du kannst auch Application.OnTime verwenden, um Makros zu einem bestimmten Zeitpunkt beim Öffnen oder während der Nutzung von Excel auszuführen.


Praktische Beispiele

Hier ist ein einfaches Beispiel für ein Makro, das alle Pivottabellen aktualisiert:

Sub UpdateAllPivots()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        For Each pt In ws.PivotTables
            pt.RefreshTable
        Next pt
    Next ws
End Sub

Private Sub Workbook_Open()
    Call UpdateAllPivots
End Sub

Füge diesen Code in DieseArbeitsmappe ein, um alle Pivottabellen zu aktualisieren, sobald die Datei geöffnet wird.


Tipps für Profis

  • Verwende Option Explicit: Füge Option Explicit am Anfang deines Moduls hinzu, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler frühzeitig zu erkennen.

  • Debugging: Nutze die Debugging-Tools im VBA-Editor, um den Code Schritt für Schritt auszuführen. Dies ist besonders nützlich, wenn du ein Excel Makro Schritt für Schritt ausführen möchtest.

  • Makros automatisch aktivieren: Um sicherzustellen, dass deine Makros beim Öffnen der Datei automatisch aktiviert werden, stelle die Sicherheitseinstellungen auf "Alle Makros aktivieren" ein.


FAQ: Häufige Fragen

1. Warum wird mein Makro nicht beim Öffnen der Datei ausgeführt?
Überprüfe die Makrosicherheitseinstellungen in Excel. Stelle sicher, dass die Datei im .xlsm Format gespeichert ist und die richtigen Befehle im VBA-Code verwendet werden.

2. Welche Excel-Version benötige ich, um VBA-Makros zu verwenden?
Die meisten aktuellen Excel-Versionen unterstützen VBA-Makros, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365.

3. Was ist der Unterschied zwischen Workbook_Open und Auto_Open?
Workbook_Open ist eine Ereignisprozedur, die spezifisch für das Arbeitsbuch ist, während Auto_Open eine allgemeine Subroutine ist, die in jedem Modul platziert werden kann. Workbook_Open ist die empfohlene Methode für das Ausführen von Makros beim Öffnen eines Arbeitsbuchs.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige