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

Forumthread: Datei in neu erstelltem Ordner speichern VBA

Datei in neu erstelltem Ordner speichern VBA
Volker
Guten Morgen!
Ich möchte aus einer Arbeitsmappe ein einzelnes Blatt als neue Arbeitsmappe speichern.
Dieses Blatt wurde mittels Comboboxen / Userform gefüllt.
z.b. Combobox 1 = Einheit CB2 = Teileinheit CB3 = Name
in einer weiteren CB stelle ich dann den Pfad aus den CB Werten zusammen
C:\Ordner1\Einheit\Teileinheit\Name ((C:\Ordner1\)) ist voreingestellt. Aus diesem Cb Eintrag erstelle ich
einen Ordner. Dieses funktioniert auch so wie ich es möchte.
Was ich nicht schaffe, ist die neu erstellte Datei auch unter dem Inhalt von CB3 (Name) in diesem Ordner zu speichern. Ich habe es so versucht: Den Pfad noch einmal in eine anderen CB zusammenzuführen
und zu erweitern
C:\Ordner1\Einheit\Teileinheit\Name\Name.xls
Hier greift Excel allerdings nicht auf den zuvor erstellen Ordner zu. Wo liegt der Fehler, bzw warum funktioniert das nicht?
Danke und Gruß
Volker
Anzeige
AW: Datei in neu erstelltem Ordner speichern VBA
15.04.2012 09:20:02
Hajo_Zi
Hallo Volker,
habe ich was überlesen, oder hast Du Deinen Code nicht gepostet?

AW: Datei in neu erstelltem Ordner speichern VBA
15.04.2012 09:35:30
Volker
Guten Morgen Hajo,
der Code zum erstellen des Ordners:

Sub Erstelle_Ordner()
Dim Pathname$, VerzeichnisName$
Dim Result&
Dim Security As SECURITY_ATTRIBUTES
Pathname = UserForm3.ComboBox5.Value
VerzeichnisName = Cells(1, 3)
Result = CreateDirectory(Pathname & VerzeichnisName, Security)
If Result = 0 Then
MsgBox ("Fehler" & vbCrLf & "Vielleicht bereits vorhanden?")
Else
MsgBox ("OK")
End If
End Sub

Der Code zum speichern der Datei:
Sub UnterNamenSpeichern()
Dim sFile As String, sPath As String
sPath = UserForm3.ComboBox5.Value
sFile = Range("C1").Value & ".xls"
ActiveWorkbook.SaveAs sPath & Range("C1") & "\" & sFile
End Sub

Danke und Gruß
Volker
Anzeige
AW: Datei in neu erstelltem Ordner speichern VBA
15.04.2012 09:43:33
Volker
Guten Morgen Hajo,
der Code zum erstellen des Ordners:
Sub Erstelle_Ordner()
Dim Pathname$, VerzeichnisName$
Dim Result&
Dim Security As SECURITY_ATTRIBUTES
Pathname = UserForm3.ComboBox5.Value
VerzeichnisName = Cells(1, 3)
Result = CreateDirectory(Pathname & VerzeichnisName, Security)
If Result = 0 Then
MsgBox ("Fehler" & vbCrLf & "Vielleicht bereits vorhanden?")
Else
MsgBox ("OK")
End If
End Sub

Der Code zum speichern der Datei:
Sub UnterNamenSpeichern()
Dim sFile As String, sPath As String
sPath = UserForm3.ComboBox5.Value
sFile = Range("C1").Value & ".xls"
ActiveWorkbook.SaveAs sPath & Range("C1") & "\" & sFile
End Sub

Danke und Gruß
Volker
Anzeige
AW: Datei in neu erstelltem Ordner speichern VBA
15.04.2012 09:59:47
Hajo_Zi
Hallo Volker.
ich kann nicht testen, da mir nicht bekannt welchen Verweis ich setzen muss. Da wäre eine Datei besser gewesen, da sind auch alle Steuerelemente vorhanden.
Gruß Hajo
AW: Datei in neu erstelltem Ordner speichern VBA
15.04.2012 10:12:55
Volker
Hallo Hajo,
Danke für Deine Mühe, die Datei ist zu umfangreich um sie hochzuladen.
Gruß Volker
Anzeige
AW: Datei in neu erstelltem Ordner speichern VBA
15.04.2012 10:18:03
Hajo_Zi
Hallo Volker,
Gut wenn Du entschieden hast Du möchtest nicht mitteilen welcher Verweis, dann bin ich raus.
Gruß Hajo
;
Anzeige
Anzeige

Infobox / Tutorial

Datei in neuem Ordner speichern mit VBA


Schritt-für-Schritt-Anleitung

Um in Excel ein Makro zu erstellen, das einen neuen Ordner anlegt und eine Datei darin speichert, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor:

    • 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.xlsx)" und wähle Einfügen > Modul.
  3. Füge den Code zum Erstellen des Ordners ein:

    • Kopiere den folgenden Code in das Modul:
    Sub Erstelle_Ordner()
       Dim Pathname As String, VerzeichnisName As String
       Dim Result As Long
       Dim Security As SECURITY_ATTRIBUTES
       Pathname = UserForm3.ComboBox5.Value
       VerzeichnisName = Cells(1, 3).Value
       Result = CreateDirectory(Pathname & VerzeichnisName, Security)
       If Result = 0 Then
           MsgBox ("Fehler" & vbCrLf & "Vielleicht bereits vorhanden?")
       Else
           MsgBox ("Ordner erstellt!")
       End If
    End Sub
  4. Füge den Code zum Speichern der Datei ein:

    • Füge den folgenden Code hinzu:
    Sub UnterNamenSpeichern()
       Dim sFile As String, sPath As String
       sPath = UserForm3.ComboBox5.Value
       sFile = Range("C1").Value & ".xls"
       ActiveWorkbook.SaveAs sPath & Range("C1").Value & "\" & sFile
    End Sub
  5. Führe die Makros aus:

    • Stelle sicher, dass die Comboboxen in deiner Userform die richtigen Werte haben, und führe dann die Makros aus, um den Ordner zu erstellen und die Datei zu speichern.

Häufige Fehler und Lösungen

  • Fehler: "Eine Tabelle mit diesem Namen ist bereits vorhanden"
    Dieser Fehler tritt auf, wenn du versuchst, eine Arbeitsmappe mit einem bereits existierenden Namen zu speichern. Stelle sicher, dass der Name in Range("C1") eindeutig ist.

  • Fehler beim Erstellen des Ordners
    Wenn der Ordner nicht erstellt werden kann, überprüfe die Berechtigungen des Zielpfads und stelle sicher, dass der Pfad korrekt ist.


Alternative Methoden

Eine alternative Methode zum Erstellen und Speichern in einem neuen Ordner ist die Verwendung von Excel-Formeln und Funktionen. Du kannst die HYPERLINK-Funktion nutzen, um auf den neu erstellten Ordner zuzugreifen, und die SPEICHERN.UNTER-Funktion verwenden, um die Datei dort abzulegen.


Praktische Beispiele

Hier ein Beispiel, wie du die oben genannten Makros nutzen kannst:

  • Benutzerform: Stelle sicher, dass die Userform die richtigen Comboboxen hat, die den Pfad und den Dateinamen enthalten.
  • Makro ausführen: Führe das UnterNamenSpeichern-Makro aus, nachdem du den Ordner erfolgreich erstellt hast.

Tipps für Profis

  • Tastenkombination für neuen Ordner: Nutze die Strg + N-Tastenkombination, um schnell einen neuen Ordner in Windows zu erstellen, bevor du das Makro ausführst.
  • Fehlerbehandlung: Füge zusätzliche Fehlerbehandlungen in deinen Code ein, um besser auf unerwartete Situationen zu reagieren.

FAQ: Häufige Fragen

1. Wie kann ich den Pfad dynamisch anpassen?
Du kannst die Comboboxen so konfigurieren, dass sie den Pfad basierend auf Benutzereingaben generieren.

2. Welche Excel-Version benötige ich?
Diese Anweisungen gelten für Excel 2010 und spätere Versionen, die VBA unterstützen.

3. Wie kann ich den Code anpassen, um andere Dateiformate zu speichern?
Ändere einfach die Dateiendung in sFile, beispielsweise von ".xls" auf ".xlsx" oder ".xlsm", je nach Bedarf.

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