Hallo zusammen,
mit folgendem Code möchte ich unter anderem ein Tabellenblatt als neue Arbeitsmappe speichern. Der Speicherpfad ist variabel und stammt aus berechneten Zellen, wobei diese Inhalte (Ordner + DatName) teilweise aus formelbasierten Berechnungen stammen.
Leider bringt mir excel in Codezeile 51 den "Laufzeitfehler 1004: Die Methode 'SaveAs' für das Objekt '_Workbook' ist fehlgeschlagen". Ich gehe davon aus, dass ich irgendwo einen einfachen "Schusselfehler" drin habe, aber Ich finde den Fehler nicht, weiß jemand Rat?
mit folgendem Code möchte ich unter anderem ein Tabellenblatt als neue Arbeitsmappe speichern. Der Speicherpfad ist variabel und stammt aus berechneten Zellen, wobei diese Inhalte (Ordner + DatName) teilweise aus formelbasierten Berechnungen stammen.
Leider bringt mir excel in Codezeile 51 den "Laufzeitfehler 1004: Die Methode 'SaveAs' für das Objekt '_Workbook' ist fehlgeschlagen". Ich gehe davon aus, dass ich irgendwo einen einfachen "Schusselfehler" drin habe, aber Ich finde den Fehler nicht, weiß jemand Rat?
Visual Basic-Quellcode
- Sub Liste_export()
- Dim pfad As String
- Dim Ordner As String
- Dim DatName As String
- Dim sFileSave As String
- Dim m As Integer
- Dim datumneu As Variant
- Range("k1").Copy
- Range("K2").Value = _
- Replace(Replace(Range("K1").Text, Chr(10), ""), Chr(13), "")
- Range("L1").Copy
- Range("L2").Value = _
- Replace(Replace(Range("L1").Text, Chr(10), ""), Chr(13), "")
- Workbooks.Add
- With ThisWorkbook.Sheets("Teilnehmerliste")
- Rows("7:10").Select
- Selection.EntireRow.Hidden = True
- .Range("A2:G100").SpecialCells(xlCellTypeVisible).Copy
- Rows("7:10").Select
- Selection.EntireRow.Hidden = False
- With Range("A1")
- .PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
- .PasteSpecial Paste:=xlValues
- .PasteSpecial Paste:=xlPasteFormats
- End With
- Application.CutCopyMode = False
- ActiveSheet.Name = .Name
- pfad = "F:\10 Info\Schulungen\Kernschulungsthemen\07 Schulungstermine und -protokolle\"
- Ordner = Sheets("Teilnehmerliste").Range("K2").Value
- DatName = Sheets("Teilnehmerliste").Range("L2").Value
- m = 1
- If Dir(pfad & Ordner & DatName & ".xlsx") <> "" Then
- sFileSave = pfad & Ordner & DatName & "_" & m & ".xlsx"
- Do While Dir(sFileSave) <> ""
- m = m + 1
- sFileSave = pfad & Ordner & DatName & "_" & m & ".xlsx"
- Loop
- ActiveWorkbook.SaveAs sFileSave
- Else
- End If
- ActiveWorkbook.SaveAs Filename:=pfad & Ordner & DatName & ".xlsx"
- If MsgBox("Die Teilnehmerliste wurde hier abgelegt: " & pfad & Chr(13) & "Soll die Teilnehmerliste auf dem Standarddrucker gedruckt werden?", vbYesNo) = vbYes Then
- 'Application.Dialogs(xlDialogPrint).Show
- ActiveSheet.PrintOut
- Else
- End If
- End With
- End Sub