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

Forumthread: Speichern in variablen Ordner per Makro

Speichern in variablen Ordner per Makro
26.03.2021 10:43:57
bastian
Hallo zusammen,
ich würde die Hilfe des Forums benötigen da ich keinen Ansatz zur Lösung meines Problems habe:
Ich möchte eine Excel-Datei per Makro in einem bestimmten Ordner speichern. Der Ordner existiert bereits und der Ordnername ist in einer Zelle hinterlegt.
Durch das Makro sollte die Datei in diesen Ordner gespeichert werden. Da sich der Ordnername ständig ändert fehlt mir schon der Ansatz das Problem zu lösen.
Kann mir jemand helfen einen Ansatz zu finden wie ich Dateien in einem bestehenden Ordner speichern kann wenn der Dateiname variabel ist (aber in Zelle A1 Tabelle1) hinterlegt ist

Anzeige

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern in variablen Ordner per Makro
26.03.2021 10:57:31
Beverly
Hi,
Vorschlage: benutze einen mit dem Makrorekorder aufgezeichneten Code und ersetze darin den fest eingetragenen Dateinamen durch =Worksheets("Tabelle1").Range("A1")

Beverly's Excel - Inn

Anzeige
AW: Speichern in variablen Ordner per Makro
26.03.2021 10:59:46
Bastian
Hallo,
danke für die schnelle Antwort, werde gleich versuch starten und mich melden.
Danke

AW: Speichern in variablen Ordner per Makro
26.03.2021 11:06:22
Bastian
Hallo,
wie gesagt danke für die schnelle Hilfe. Der Dateiname ist bekannt. Der Ordnername ist in Zelle A1, Tabelle 1 hinterlegt. Dort soll diese Datei gespeichert werden.
Auszug
ChDir "Y:\05\2021\214518\01 Bericht"
ActiveWorkbook.SaveAs Filename:="Y:\05\2021\214518\01 Bericht\2000.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Die Nummer 214518 ist der variable Ordnername
Der Unterordnuer 01 Bericht ist in jedem variablen Ordner gleich
Der Dateiname ist immer 2000.xlsm

Anzeige
AW: Speichern in variablen Ordner per Makro
26.03.2021 11:06:51
Bastian
und dieser Ordnername ist in der Zelle A1 Tabelle1 hinterlegt

AW: Speichern in variablen Ordner per Makro
26.03.2021 11:12:02
Beverly
Hi,
ActiveWorkbook.SaveAs Filename:="Y:\05\2021\" & Worksheets("Tabelle1").Range("A1") & "\01  _
Bericht\2000.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

Beverly's Excel - Inn

Anzeige
AW: Speichern in variablen Ordner per Makro
26.03.2021 11:19:42
Bastian
Hallo,
Habe Ihren Code eingefügt und bringt leider eine Fehlermeldung:
Fehler beim Kompilieren:
Syntaxfehler

AW: Speichern in variablen Ordner per Makro
26.03.2021 11:27:24
Beverly
Hi,
hast du die Zeilenumbrüche berücksichtgt? Die 3 hier dargestellten Zeilen sind im Original 1 komplette Zeile.

Beverly's Excel - Inn

Anzeige
AW: Speichern in variablen Ordner per Makro
26.03.2021 11:36:16
Bastian
Leider komme ich hier schon an meine Grenze
in Zelle A1 steht nur 214518. Bitte entschuldige wo muss ich auf den Zeilenumbruch achten.

AW: Speichern in variablen Ordner per Makro
26.03.2021 11:44:10
Bastian
Er sagt mir jetzt in der zweiten Zeile bei:
01 Bericht erwartet Anweisungsende?
Hier mein aktueller Versuch:
pfad = "Y:\05\2021\ActiveWorksheet.Range(A1) &" _
\01 Bericht\2000.xlms

Anzeige
AW: Speichern in variablen Ordner per Makro
26.03.2021 11:48:23
Werner
Hallo,
  • Dim strPfad As String, strFilename As String
    strPfad = "Y:\05\2021\" & Worksheets("Tabelle1").Range("A1") & "\01 Bericht\"
    strFilename = strPfad & "2000.xlsm"
    ThisWorkbook.SaveAs strFilename

  • Gruß Werner

    AW: Speichern in variablen Ordner per Makro
    26.03.2021 12:15:14
    Bastian
    Danke für die schnelle Hilfe, hat funktioniert!
    Danke, Danke

    Anzeige
    Gerne u. Danke für die Rückmeldung. o.w.T.
    26.03.2021 12:29:54
    Werner

    AW: Speichern in variablen Ordner per Makro
    26.03.2021 12:40:52
    Bastian
    Hallo nochmal,
    Die Datei speichern funktioniert super. Habe jetzt versucht den Code zu erweitern um die Datei als PDF im Ordner 01 Bericht zu speichern.
    Leider bin ich mit Variablen Dingen sehr ungeschickt und wäre um guten Rat froh.
    Dim strPfad As String, strName As String, strFilname As String
    strPfad = "Y:\05\2021\" & Worksheets("Tabelle1").Range(A1) & "\01 Bericht\"
    strName = Worksheets("Tabelle1").Range("A1") & "_" & Date & ".pdf"
    strFilename = strPfad & strName
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="strFilename" _
    , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
    :=False, OpenAfterPublish:=True
    Zeigt mir beim Pfad eine Fehlermeldung!
    Wo sollte ich ansetzen?

    Anzeige
    AW: Speichern in variablen Ordner per Makro
    26.03.2021 12:47:56
    Werner
    Hallo,
    bei Range(A1) fehlen die Gänsefüßchen.
    strPfad = "Y:\05\2021\" & Worksheets("Tabelle1").Range("A1") & "\01 Bericht\"
    Gruß Werner

    AW: Speichern in variablen Ordner per Makro
    26.03.2021 12:12:06
    Beverly
    Die feststehenden Angaben müssen in "" gesetzt werden und mit den variablen Angaben von Tabellenblatt und Zelle durch den Operator & verbunden werden. Außerdem mss die Zelladresse in "" stehen - deine Zeile muss also so heißen:
    pfad = "Y:\05\2021\" & ActiveWorksheet.Range("A1") & "\01 Bericht\2000.xlms"
    

    Beverly's Excel - Inn

    Anzeige
    AW: Speichern in variablen Ordner per Makro
    26.03.2021 13:10:19
    Bastian
    Danke für die Geduld,
    strPfad = "Y:\05\2021\" & Worksheets("Tabelle1").Range("A1") & "\01 Bericht\"
    strName = Worksheets("Tabelle1").Range("A100") & "_" & Date & ".pdf"
    strFilename = strPfad & strName
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="strFilename" _
    , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
    :=False, OpenAfterPublish:=True
    Ich habe nur noch zwei Probleme:
    Er speichert mir das nicht als PDF in den Ordner 01 Bericht und der Speichername ist strFilname wenn ich das manuell speichern möchte.
    Könntet ihr mir bitte diese finalen Ansätze noch zeigen. Ich teste ständig und komme nicht auf die Lösung.

    Anzeige
    AW: Speichern in variablen Ordner per Makro
    26.03.2021 13:19:54
    Bastian
    Hallo, habe das Problem gelöst und geschafft.
    Danke für die tolle und schnelle Hilfe.
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Anzeige
    Anzeige
    Anzeige
    Anzeige

    Infobox / Tutorial

    Speichern in variablen Ordnern mit Excel VBA


    Schritt-für-Schritt-Anleitung

    Um eine Excel-Datei in einem variablen Ordner per Makro zu speichern, folge diesen Schritten:

    1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

    2. Erstelle ein neues Modul: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.

    3. Füge den folgenden Code ein:

      Sub SpeichernInVariablenOrdner()
         Dim strPfad As String
         Dim strFilename As String
      
         ' Den Pfad aus Zelle A1, Tabelle1 auslesen
         strPfad = "Y:\05\2021\" & Worksheets("Tabelle1").Range("A1").Value & "\01 Bericht\"
         strFilename = strPfad & "2000.xlsm"
      
         ' Datei speichern
         ThisWorkbook.SaveAs Filename:=strFilename, FileFormat:=xlOpenXMLWorkbookMacroEnabled
      End Sub
    4. Führe das Makro aus: Drücke F5, um das Makro auszuführen.

    5. Überprüfe den Speicherort: Deine Datei sollte jetzt im angegebenen Ordner gespeichert sein.


    Häufige Fehler und Lösungen

    • Fehler beim Kompilieren: Syntaxfehler:

      • Stelle sicher, dass alle Zeilen korrekt formatiert sind. Zeilenumbrüche sollten im Code nicht vorhanden sein, wenn sie nicht mit dem _ Operator verbunden sind.
    • Datei wird nicht gespeichert:

      • Überprüfe, ob der Pfad korrekt ist und ob der Ordner existiert. Du kannst den Pfad in einer MsgBox anzeigen lassen, um sicherzustellen, dass er richtig ist.
      MsgBox strPfad
    • Speichername wird als "strFilename" angezeigt:

      • Achte darauf, dass beim Speichern der Datei der Name ohne Anführungszeichen übergeben wird.

    Alternative Methoden

    Wenn Du nicht nur Dateien speichern, sondern auch neue Ordner erstellen möchtest, kannst Du das folgendermaßen tun:

    Sub OrdnerErstellenUndSpeichern()
        Dim strPfad As String
        strPfad = "Y:\05\2021\" & Worksheets("Tabelle1").Range("A1").Value & "\01 Bericht\"
    
        ' Überprüfe, ob der Ordner existiert, und erstelle ihn, falls nicht
        If Dir(strPfad, vbDirectory) = "" Then
            MkDir strPfad
        End If
    
        ' Datei speichern
        ThisWorkbook.SaveAs Filename:=strPfad & "2000.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
    End Sub

    Praktische Beispiele

    1. Speichern als PDF: Um deine Arbeitsmappe als PDF im selben Ordner zu speichern, kannst Du den folgenden Code verwenden:

      Sub SpeichernAlsPDF()
         Dim strPfad As String
         Dim strName As String
      
         strPfad = "Y:\05\2021\" & Worksheets("Tabelle1").Range("A1").Value & "\01 Bericht\"
         strName = Worksheets("Tabelle1").Range("A1").Value & "_" & Format(Date, "YYYYMMDD") & ".pdf"
      
         ' Exportiere die aktive Tabelle als PDF
         ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPfad & strName, Quality:=xlQualityStandard
      End Sub
    2. Speichern mit Benutzerdefiniertem Dateinamen: Du kannst den Dateinamen auch dynamisch aus einer anderen Zelle beziehen:

      strName = Worksheets("Tabelle1").Range("A2").Value & ".xlsm"

    Tipps für Profis

    • Nutze Application.DisplayAlerts = False vor dem Speichern, um unerwünschte Bestätigungsdialoge zu vermeiden. Vergiss nicht, es wieder auf True zu setzen.

    • Verwende On Error Resume Next, um Fehler zu ignorieren, während Du den Pfad überprüfst oder den Ordner erstellst.

    • Halte deine Code-Struktur sauber, indem Du Kommentare hinzufügst, um die Funktionen zu erklären.


    FAQ: Häufige Fragen

    1. Wie wähle ich den Pfad aus und speichere ihn in einer Variable? Du kannst den Pfad direkt aus einer Zelle auslesen, wie im Beispiel oben gezeigt. Stelle sicher, dass die Zelle den richtigen Wert enthält.

    2. Was passiert, wenn der Ordner nicht existiert? Das Makro wird einen Fehler erzeugen. Du kannst jedoch den Code anpassen, um den Ordner zu erstellen, falls er nicht vorhanden ist.

    3. Wie speichere ich die Datei als PDF? Verwende die ExportAsFixedFormat-Methode, um die Datei als PDF zu speichern, wie im praktischen Beispiel gezeigt.

    4. Welche Excel-Version benötige ich für dieses Makro? Das Makro sollte in Excel 2010 und späteren Versionen funktionieren, da die SaveAs und ExportAsFixedFormat Methoden in diesen Versionen verfügbar sind.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Entdecke mehr
    Finde genau, was du suchst

    Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

    Suche nach den besten Antworten
    Unsere beliebtesten Threads

    Entdecke unsere meistgeklickten Beiträge in der Google Suche

    Top 100 Threads jetzt ansehen
    Anzeige