Clever-Excel-Forum

Normale Version: Workbook_Open Fehler wenn Excel bereits geöffnet
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Kollegen,

ich erzeuge in dem Programm EPLAN automatisch eine Excel-Datei gefüllt mit Projektnummer und Artikeln.
Starte ich die Datei, ohne das Excel geöffnet ist, schreibt mein Makro mir auch für jede Projektnummer EINE Extra Datei mit dem Namen der jeweiligen Projektnummer und in der Datei enthalten sind dann auch nur Artikel des Projektes.

Folgendes passiert aber, wenn ich zum Beispiel im Hintergrund bereits eine Adressliste in Excel geöffnet habe:

Ich öffne meine Artikeldatei und Excel sucht jetzt nicht in der ARTIKELDATEI sondern in der bereits geöffneten ADRESSLISTE - erstellt mir dann aber trotzdem Dateien die heißen wie die einzelnen Projektnummer und drin enthalten ist dann nur irgendwelcher Datenmüll aus der Adressliste.

Wie schreibe ich mein Makro um, damit meine ARTIKELDATEI beim Starten erst komplett geöffnet wird und DANN anschließend erst die Prozedur abläuft zu filtern, zu sortieren und als neue Dateien zu schreiben?

Hier mein Makro - VIELEN DANK VORAB!

Private Sub Workbook_Open()
Dim Zelle As Range
Dim Anlage As String
Dim Path As String
Range("A2:A" & ActiveSheet.Cells(Rows.Count, 15).End(xlUp).Row).Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Path = ActiveWorkbook.Path
For Each Zelle In Worksheets(1).Range("A2:A" & Worksheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row)
If Anlage <> Zelle And Zelle <> "" Then
Anlage = Zelle
Workbooks.Add
Workbooks(1).Worksheets(1).Range("A1").AutoFilter Field:=1, Criteria1:=Zelle
Workbooks(1).Worksheets(1).Rows("1:" & Workbooks(1).Worksheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row).Copy ActiveWorkbook.Worksheets(1).Range("A1")
Workbooks(1).Worksheets(1).Range("A1").AutoFilter
ActiveWorkbook.SaveAs Filename:=Path & "\" & "BMK_" & Zelle & ".xlsx", CreateBackup:=False
ActiveWorkbook.Close
End If
Next Zelle
ActiveWorkbook.Close savechanges:=False
End Sub
Hallo,

ersetzte alle
Workbooks(1)
mit
ThisWorkbook
Gruß Uwe