Laufzeitfehler
22.10.2019 19:55:34
Dubach
Seit einem Update auf Excel 2016 (64-Bit) und Win10 läuft eines von drei Makros aus unerfindlichen Gründen nicht mehr. Es wird ein Laufzeitfehler 1004 ausgegeben (Die Methode 'Worksheets' für das Objekt '_Global' ist fehlgeschlagen). Hier der Code:
Sub Datenqualität_Publikationsdateien_Erstellen()
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
'Variablendeklaration
Dim myZieldatei As Variant
Dim myStationen As Variant
Dim strPfad As String
Dim lcFileName As Variant
Dim lcBlattname As Variant
Dim strPassw As String
Dim i As Integer
Dim j As Integer
Dim z As Integer
Dim sc As Integer
myZieldatei = Worksheets("Administration").Range("tb_Zieldatei").Value
myStationen = Worksheets("Administration").Range("tb_Stationen").Value
strPfad = ThisWorkbook.Path & "\"
strPassw = "pco"
For i = 1 To UBound(myZieldatei, 1)
ThisWorkbook.Sheets.Copy
lcFileName = strPfad & "02_2019_Datenqualität_" & myZieldatei(i, 1)
ActiveWorkbook.SaveAs Filename:=lcFileName, FileFormat:=xlOpenXMLWorkbook
'Fremde Blätter löschen
For j = 1 To UBound(myStationen, 1)
lcBlattname = myStationen(j, 3)
If myStationen(j, 6) myZieldatei(i, 1) Then
Worksheets(lcBlattname).Delete
End If
Next j
'Gruppierung einklappen, Cursor auf Zelle A37, Blätter mit Passwort schützen
sc = Worksheets.Count
For z = 1 To sc
Sheets(z).Outline.ShowLevels Rowlevels:=1
Cells(1, 37).Select
ActiveWindow.DisplayHeadings = False
Sheets(z).Protect Password:=strPassw, DrawingObjects:=True, Contents:=True,
Scenarios:= True, AllowFiltering:=True
Next z
Worksheets(1).Activate
Worksheets("Administration").Visible = xlSheetVeryHidden
With ActiveWorkbook
.Protect Password:=strPassw, Structure:=True, Windows:=False
.Save
.Close
End With
Next i
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "Die Dateien wurden erstellt!"
End Sub
Dieser Code wird aus der Datei https://www.herber.de/bbs/user/132668.xls
heraus gestartet. Diverse Parameter befinden sich dort im Sheet "Administration". Ziel ist, am Ende eine Datei "Sommer" bzw. "Frühling" zu haben, welcher nur die ihr zugewiesenen Sheets enthalten. Die Quelldaten sind viel umfangreicher - doch geht es hier ja um den Lösungsansatz. Das Makro bleibt beim Löschen-Befehl hängen und Excel stürzt ab.
Die anderen beiden Makro-Dateien sind analog aufgebaut, laufen jedoch problemlos. Wir finden einfach den Fehler nicht.
Das Makro läuft übrigens unter Excel 2010 oder 2019 (64-Bit) fehlerlos durch. Was muss im Code geändert werden, damit es unter Excel 2016 (64-Bit) läuft? Danke für eure Hinweise und den Support.