Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datei in variablen Ordner speichern

Datei in variablen Ordner speichern
22.03.2018 13:53:13
Hendrik
Hallo zusammen,
vielen Dank für eure Antwort auf meine gestrige Frage. Hat mir sehr geholfen!
Nun habe ich einen Fehler in folgendem Script und ich komme nicht auf die Lösung.
Könnt ihr mir da helfen?
Vielen Dank!
Sub BlattSpeichern()
Dim Pfad As String
Dim Dateiname As String
Dateiname = ThisWorkbook.Worksheets("Tabelle1").Range("A12").Value & ".xlsx"
Pfad = "C:\Telefonnotizen\" & Date & "\" & Dateiname
Call Ordner
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ActiveSheet.Copy
'InputBox ("Unter welchem Namen soll die Datei gespeichert werden?")
ActiveWorkbook.SaveAs Filename:=Pfad, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
ActiveWorkbook.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Das Script soll eine neu erstelle Datei in einen Unterordner speichern in:
C:\Telefonnotizen\" & Date & "\" & Dateiname
Date daher weil es für jeden Tag einen neuen "Date" Ordner gibt.
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei in variablen Ordner speichern
22.03.2018 14:20:00
Robert
Hallo Hendrik,
was passiert denn in dem Makro Ordner, das ja mit der Zeile Call Ordner aufgerufen wird. Wird da der entsprechende Ordner, falls er noch nicht existiert, erstellt (C:\Telefonnotizen\" & Date)? Dann müsste Dein Code eigentlich funktionieren. Ich vermute den Fehler daher in dem Makro Ordner.
Gruß
Robert
Anzeige
AW: Datei in variablen Ordner speichern
22.03.2018 14:34:42
UweD
Hallo
was geschieht denn in Call Ordner?
prüfst du da, ob der Ordner besteht?
Da ist aber schon der Dateiname mit enthalten...
so würde es gehen
Sub BlattSpeichern()
    Dim Pfad1 As String, Pfad2 As String, GPfad As String
    Dim Dateiname As String
    Dateiname = ThisWorkbook.Worksheets("Tabelle1").Range("A12").Value & ".xlsx"
    
    Pfad1 = "C:\Telefonnotizen\"
    If Dir(Pfad1, vbDirectory) = "" Then MkDir Pfad1
    
    Pfad2 = Pfad1 & Format(Date, "YYYY.MM.DD")
    If Dir(Pfad2, vbDirectory) = "" Then MkDir Pfad2
    
    GPfad = Pfad2 & "\" & Dateiname
    'Call Ordner 
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ActiveSheet.Copy
    'InputBox ("Unter welchem Namen soll die Datei gespeichert werden?") 
    ActiveWorkbook.SaveAs Filename:=GPfad, FileFormat:=xlNormal, _
        Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
        CreateBackup:=False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

LG UweD
Anzeige
AW: Datei in variablen Ordner speichern
22.03.2018 22:49:23
Hendrik
Danke UweD, jetzt funktioniert es!
Prima! Danke für die Rückmeldung. owT
23.03.2018 08:36:20
UweD
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Datei in variablen Ordner speichern


Schritt-für-Schritt-Anleitung

Um eine Datei in einem variablen Ordner zu speichern, kannst du das folgende VBA-Skript verwenden. Es wird zuerst überprüft, ob der Zielordner existiert, und falls nicht, wird er erstellt:

Sub BlattSpeichern()
    Dim Pfad1 As String, Pfad2 As String, GPfad As String
    Dim Dateiname As String
    Dateiname = ThisWorkbook.Worksheets("Tabelle1").Range("A12").Value & ".xlsx"

    Pfad1 = "C:\Telefonnotizen\"
    If Dir(Pfad1, vbDirectory) = "" Then MkDir Pfad1

    Pfad2 = Pfad1 & Format(Date, "YYYY.MM.DD")
    If Dir(Pfad2, vbDirectory) = "" Then MkDir Pfad2

    GPfad = Pfad2 & "\" & Dateiname
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ActiveSheet.Copy
    ActiveWorkbook.SaveAs Filename:=GPfad, FileFormat:=xlNormal, _
        Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
        CreateBackup:=False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

In diesem Code wird der Name der Datei aus der Zelle A12 des Arbeitsblatts „Tabelle1“ entnommen. Der Ordner wird auf Grundlage des aktuellen Datums erstellt, wodurch für jeden Tag ein neuer Unterordner angelegt wird.


Häufige Fehler und Lösungen

  1. Fehler: Ordner wird nicht gefunden oder erstellt

    • Stelle sicher, dass das Makro, das den Ordner erstellt (Call Ordner), korrekt implementiert ist. Falls nicht, entferne diese Zeile, und implementiere die Ordnererstellung direkt im BlattSpeichern-Makro.
  2. Fehler: Datei wird nicht gespeichert

    • Überprüfe, ob der Zielpfad korrekt ist und dass du Schreibrechte für das Verzeichnis hast.
  3. Fehler: Dateiname enthält ungültige Zeichen

    • Achte darauf, dass der Inhalt der Zelle A12 keine ungültigen Zeichen für Dateinamen enthält.

Alternative Methoden

Wenn du keine VBA-Programmierung nutzen möchtest, kannst du auch folgende Methoden in Betracht ziehen:

  • Excel-Formeln: Verwende Excel-Formeln für einfache Datenverarbeitung und exportiere die Ergebnisse manuell.
  • Makros aufzeichnen: Nutze die Funktion „Makro aufzeichnen“ in Excel, um deine Schritte aufzuzeichnen und dann die resultierenden VBA-Codes zu bearbeiten.

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du das Makro anpassen kannst, um die Datei täglich in einen neuen Ordner zu speichern:

Sub TagesDateiSpeichern()
    ' Diese Routine speichert die Datei in einem täglichen Ordner
    ' Ändere den Dateinamen in der Zellreferenz nach Bedarf
End Sub

Nutze die Struktur des vorherigen Makros, um spezifische Anforderungen zu integrieren, wie z.B. das Speichern von Berichten oder Datensätzen.


Tipps für Profis

  • Fehlerbehandlung: Implementiere On Error Resume Next und On Error GoTo 0, um sicherzustellen, dass dein Makro nicht bei einem Fehler stoppt.
  • Benutzerdefinierte Dialoge: Nutze InputBox oder MsgBox, um deine Benutzerfreundlichkeit zu verbessern.
  • Verwendung von Konstanten: Definiere häufig verwendete Pfade oder Formate als Konstanten am Anfang deines Codes, um die Wartbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich den Speicherort ändern? Du kannst den Pfad in der Variablen Pfad1 anpassen, um die Datei an einem anderen Ort zu speichern.

2. Was ist, wenn ich die Datei mit Passwort schützen möchte? Du kannst das Password-Argument in der SaveAs-Methode anpassen, um ein Passwort hinzuzufügen.

3. Welche Excel-Version wird benötigt? Das Skript funktioniert in Excel-Versionen, die VBA unterstützen, wie Excel 2010 und später.

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