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

Forumthread: Speichern mit Pfad & Name aus Zellen

Speichern mit Pfad & Name aus Zellen
13.02.2017 13:53:28
Tino
Hallo zusammen,
Ich habe mir ein Makro aus dem Forum zusammengeschustert aber natülich habe ich einen fehler dirnen.
Sub Speichern1()
'Quelle: Herber
Dim SpeicherName As String
Dim Speicherpfad As String
If Dir(Pfad, vbDirectory) = "" Then MkDir Pfad
Datum = Date
If Time > CDate("23:59:59") Or Time 

Kann mir jemand von euch Profis sagen wo mein Fehler ist und ggf. gleich abändern? Ich habe leider keine Ahnung von VBA. :(
Gruß Tino
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern mit Pfad & Name aus Zellen
13.02.2017 14:16:09
harry
Hallo Tino,
in Codezeile 5 verwendest Du eine Variable "Pfad", der Du noch gar keinen Wert zugeordnet hast!
Was passiert mit der Variable "Datum"?
Was steht in JR9?
Alles ein bißchen wirr!
Grüße
harry
AW: Speichern mit Pfad & Name aus Zellen
13.02.2017 14:41:06
Tino
Hallo Harry,
in der Zelle JR8 bekomme ich: ="''"&"C:\Users\Tino\PDFs"&"\"&TEXT(KH1;"JJJJ")&"\"&TEXT(KH1;"MM MMMM JJJJ")&"\"
in JR9 gibt er mir den Dateinamen aus: =(TEXT(KH1;"TT.MM.JJJJ")&" "&KC55)&".pdf"
beides Funktioniert prima.
Mein Problem sind die fehlenden Kenntnisse in VBA.
Was muss ich machen?
Vielen Dank!
Gruß Tino
Anzeige
AW: Speichern mit Pfad & Name aus Zellen
14.02.2017 11:10:31
Tino
Guten Morgen Zusammen,
irgendwie habe ich mich gestern undeutlich ausgedrückt. Sry hierfür!
Mein Projekt ist fast fertig, Jetzt bin ich noch auf der Suche nach einem Makro zum Speichern als PDF.
wir haben auf dem PC einen Ordner "PDFs" in diesem befinden sich Unterordner die nach Jahreszahlen benannt sind (also 2015,2016,2017 ...), darin sind wieder Unterordner mit den Monaten.
Meine Excel Tabelle gibt mir in einer Zelle (JR8) den Ordner mit der Jahreszahl und den Ordner mit dem Monat. In der Zelle (JR9) befindet sich der Dateiname für das PDF.
Hier mein Versuch mit Hilfe vom WWW.
Sub Speichern_1()
Dim Speichern_Unter
Dim Pfad As String, Datum As Date
Pfad = "C:\Users\sicherheitsdienst\Ehrl\Dienstberichte\Bezug aus Zelle(JR8)\PDF  _
Dateiname =Bezug aus Zelle (JR9)"
If Dir(Pfad, vbDirectory) = "" Then MkDir Pfad
With Sheets("Dienstbericht")
.PageSetup.PrintArea = "$JR$54:$KZ$99"
Speichern_Unter = Application.GetSaveAsFilename _
(InitialFileName:=Pfad & Format(Datum, "YYYYMMDD") & "_" & .Range("N97") & ".pdf",  _
fileFilter:="PDF, *.pdf")
If Speichern_Unter  "" And Speichern_Unter  False Then
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Speichern_Unter
Else
MsgBox "Nichts gespeichert"
End If
End With
End Sub
Was ich nicht hin bekomme ist zum einen der Pfad und den Dateinamen aus der Zelle und zum 2 soll er einfach speichern ohne Dialogfeld "Speichern unter" einzig die MsgBox mit "Datei vorhanden möchten sie ersetzen?" Ja/nein.
Diese Datei wird 2 mal gespeichert im gleichen verfahren nur an 2 Unterschiedliche Orte. Ist es möglich mit einem Makro, 2x speichern mit unterschiedlichen Pfaden durchzuführen?
Vielen Vielen Dank für jede Hilfe!
Gruß
Tino
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Speichern mit Pfad & Name aus Zellen in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei)" und wähle Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub Speichern1()
       Dim SpeicherName As String
       Dim Speicherpfad As String
       Dim Datum As String
    
       ' Pfad und Dateiname aus den Zellen JR8 und JR9 auslesen
       Speicherpfad = Range("JR8").Value
       SpeicherName = Range("JR9").Value
    
       ' Sicherstellen, dass der Pfad existiert
       If Dir(Speicherpfad, vbDirectory) = "" Then MkDir Speicherpfad
    
       Datum = Format(Date, "YYYYMMDD")
    
       ' Datei speichern
       ActiveWorkbook.SaveAs Filename:=Speicherpfad & "\" & SpeicherName & "_" & Datum & ".xlsx"
    End Sub
  4. Passe die Zellreferenzen an, falls nötig, um sicherzustellen, dass sie mit deiner Tabelle übereinstimmen.

  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Starte das Makro: Drücke ALT + F8, wähle Speichern1 und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: Pfad ist nicht definiert

    • Lösung: Stelle sicher, dass der Pfad in Zelle JR8 korrekt eingegeben ist und existiert.
  • Fehler: Datei kann nicht gespeichert werden

    • Lösung: Überprüfe, ob der Dateiname in Zelle JR9 gültig ist. Vermeide Sonderzeichen wie /, \, :, *, ?, ", <, >, |.
  • Fehler: Dialogfeld "Speichern unter" erscheint

    • Lösung: Stelle sicher, dass du die SaveAs-Methode ohne Application.GetSaveAsFilename verwendest.

Alternative Methoden

Wenn du mit Excel VBA nicht vertraut bist oder eine einfachere Lösung suchst, könntest du auch die Funktion "Speichern unter" direkt in Excel verwenden. Gehe dazu einfach auf Datei > Speichern unter und wähle den gewünschten Pfad und Namen aus.

Für fortgeschrittene Nutzer gibt es die Möglichkeit, die Excel-Optionen so anzupassen, dass der letzte Speicherort automatisch verwendet wird.


Praktische Beispiele

Hier ist ein Beispiel, wie du eine PDF-Datei speichern kannst:

Sub SpeichernAlsPDF()
    Dim SpeichernUnter As String
    Dim Speicherpfad As String
    Dim Datum As String

    Speicherpfad = Range("JR8").Value
    SpeichernUnter = Range("JR9").Value

    Datum = Format(Date, "YYYYMMDD")

    ' Sicherstellen, dass der Pfad existiert
    If Dir(Speicherpfad, vbDirectory) = "" Then MkDir Speicherpfad

    ' Tabelle als PDF speichern
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Speicherpfad & "\" & SpeichernUnter & "_" & Datum & ".pdf"
End Sub

Tipps für Profis

  • Verwende WorksheetFunction, um Daten direkt aus Zellen zu verarbeiten, bevor du sie speicherst.

  • Nutze Fehlerbehandlung in deinem VBA-Code, um unerwartete Probleme zu vermeiden. Beispiel:

    On Error Resume Next
    ' Dein Code hier
    If Err.Number <> 0 Then
      MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
    End If
  • Dokumentiere deinen Code mit Kommentaren, um die Nachvollziehbarkeit zu erhöhen.


FAQ: Häufige Fragen

1. Wie kann ich den Pfad und den Dateinamen aus Zellen auslesen? Du kannst den Pfad und den Dateinamen einfach über die .Value-Eigenschaft der Zellen auslesen, wie im obigen Code gezeigt.

2. Ist es möglich, eine Datei ohne Bestätigungsdialog zu speichern? Ja, indem du direkt die SaveAs-Methode mit dem gewünschten Pfad und Namen verwendest, kannst du den Dialog umgehen.

3. Kann ich mehrere Dateien gleichzeitig speichern? Ja, du kannst mehrere SaveAs-Befehle in einem Makro hintereinander ausführen, indem du verschiedene Pfade und Dateinamen angibst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige