Pfad und Dateiname aus Zellen, die Ergebnisse aus Formeln sind

  • Excel

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Pfad und Dateiname aus Zellen, die Ergebnisse aus Formeln sind

    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?

    Visual Basic-Quellcode

    1. Sub Liste_export()
    2. Dim pfad As String
    3. Dim Ordner As String
    4. Dim DatName As String
    5. Dim sFileSave As String
    6. Dim m As Integer
    7. Dim datumneu As Variant
    8. Range("k1").Copy
    9. Range("K2").Value = _
    10. Replace(Replace(Range("K1").Text, Chr(10), ""), Chr(13), "")
    11. Range("L1").Copy
    12. Range("L2").Value = _
    13. Replace(Replace(Range("L1").Text, Chr(10), ""), Chr(13), "")
    14. Workbooks.Add
    15. With ThisWorkbook.Sheets("Teilnehmerliste")
    16. Rows("7:10").Select
    17. Selection.EntireRow.Hidden = True
    18. .Range("A2:G100").SpecialCells(xlCellTypeVisible).Copy
    19. Rows("7:10").Select
    20. Selection.EntireRow.Hidden = False
    21. With Range("A1")
    22. .PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    23. .PasteSpecial Paste:=xlValues
    24. .PasteSpecial Paste:=xlPasteFormats
    25. End With
    26. Application.CutCopyMode = False
    27. ActiveSheet.Name = .Name
    28. pfad = "F:\10 Info\Schulungen\Kernschulungsthemen\07 Schulungstermine und -protokolle\"
    29. Ordner = Sheets("Teilnehmerliste").Range("K2").Value
    30. DatName = Sheets("Teilnehmerliste").Range("L2").Value
    31. m = 1
    32. If Dir(pfad & Ordner & DatName & ".xlsx") <> "" Then
    33. sFileSave = pfad & Ordner & DatName & "_" & m & ".xlsx"
    34. Do While Dir(sFileSave) <> ""
    35. m = m + 1
    36. sFileSave = pfad & Ordner & DatName & "_" & m & ".xlsx"
    37. Loop
    38. ActiveWorkbook.SaveAs sFileSave
    39. Else
    40. End If
    41. ActiveWorkbook.SaveAs Filename:=pfad & Ordner & DatName & ".xlsx"
    42. If MsgBox("Die Teilnehmerliste wurde hier abgelegt: " & pfad & Chr(13) & "Soll die Teilnehmerliste auf dem Standarddrucker gedruckt werden?", vbYesNo) = vbYes Then
    43. 'Application.Dialogs(xlDialogPrint).Show
    44. ActiveSheet.PrintOut
    45. Else
    46. End If
    47. End With
    48. End Sub
    Welchen Wert hat denn der komplette Pfad? Ist er plausibel? Ist das Verzeichnis erreichbar?
    Lass ihn Dir anzeigen, bevor Du versuchst zu speichern. Entweder durch Wertüberwachung oder in Zeile#50 durch eine MsgBox:

    Visual Basic-Quellcode

    1. Dim KompletterDateipfad As String
    2. KompletterDateipfad = pfad & Ordner & DatName & ".xlsx"
    3. MsgBox KompletterDateipfad
    4. ActiveWorkbook.SaveAs Filename:=KompletterDateipfad
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.