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

Forumthread: Datei in eigenem Pfad anlegen (VBA)

Datei in eigenem Pfad anlegen (VBA)
Henner
Hallo zusammen,
bisher habe ich mit folgendem Code den Inhalt bestimmter Zellen in eine Textdatei exportiert:

ifile = FreeFile
Open "c:\Ordner\Unterordner\export.txt" For Append As ifile
Print #ifile, Worksheets("Datenexport").Cells(10, 8)
Close ifile
Nun möchte ich den Pfad für die Textdatei aber nicht mehr im Code angeben, sondern abhängig vom Pfad der Exceldatei machen. Die txt soll im gleichen Ordner erstellt werden, wo die xls liegt.
Wie muss ich den Code dafür anpassen?
Danke & Gruß
Henner
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Datei in eigenem Pfad anlegen (VBA)
17.04.2012 21:02:14
JoWe
Hallo Henner,
so vllt.:
ifile = FreeFile
Open thisworkbook.path & "\" & "export.txt" For Append As ifile
Print #ifile, Worksheets("Datenexport").Cells(10, 8)
Close ifile

Gruß
Jochen
AW: Datei in eigenem Pfad anlegen (VBA)
17.04.2012 21:09:37
Henner
Hallo Jochen,
vielen Dank! Noch eine kleine Nachfrage: Wenn ich nun nicht nur eine Zelle sondern einen Zellbereich (A1:B6) exportieren möchte, wie liesse sich das noch einbinden?
Nochmals danke & Gruß
Anzeige
Auch mit bescheidenen VBA-Kenntnissen lässt ...
17.04.2012 21:27:57
Luc:-?
…sich sicher erkennen, wo die Zelle im Code steht, Henner… :-]
.Cells(10, 8) meint Zelle H10 → mit A1:B6 sollte es dann .Range("A1:B6") sein.
Gruß Luc :-?
AW: Auch mit bescheidenen VBA-Kenn.. (THX Luc) owT
17.04.2012 21:33:45
Henner
.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datei im eigenen Pfad anlegen mit VBA


Schritt-für-Schritt-Anleitung

Um eine Datei im eigenen Pfad anzulegen, also in dem Ordner, in dem sich auch die Excel-Datei befindet, kannst du den folgenden VBA-Code verwenden:

ifile = FreeFile
Open ThisWorkbook.Path & "\" & "export.txt" For Append As ifile
Print #ifile, Worksheets("Datenexport").Cells(10, 8)
Close ifile

Hier wird ThisWorkbook.Path genutzt, um den aktuellen Pfad der Excel-Datei zu ermitteln. So wird die Textdatei im gleichen Verzeichnis wie die Excel-Datei erstellt.

Wenn du nicht nur eine Zelle, sondern einen Zellbereich (z.B. A1:B6) exportieren möchtest, kannst du den Code wie folgt anpassen:

ifile = FreeFile
Open ThisWorkbook.Path & "\" & "export.txt" For Append As ifile
For Each cell In Worksheets("Datenexport").Range("A1:B6")
    Print #ifile, cell.Value
Next cell
Close ifile

Mit dieser Anpassung exportierst du alle Werte aus dem angegebenen Zellbereich.


Häufige Fehler und Lösungen

  • Fehler: Pfad nicht gefunden

    • Stelle sicher, dass der Pfad, den du generierst, korrekt ist. Überprüfe, ob die Excel-Datei gespeichert ist, da ThisWorkbook.Path nur einen gültigen Pfad zurückgibt, wenn die Datei bereits gespeichert wurde.
  • Fehler: Berechtigungen

    • Wenn du keine Berechtigung hast, im aktuellen Ordner zu schreiben, erhältst du einen Laufzeitfehler. Stelle sicher, dass du die entsprechenden Berechtigungen hast.

Alternative Methoden

Eine alternative Methode, um einen Pfad zu erstellen, ist die Verwendung von Dialogen, um den Benutzer einen Speicherort auswählen zu lassen. So kannst du den VBA Code entsprechend anpassen:

Dim SavePath As String
With Application.FileDialog(msoFileDialogFolderPicker)
    If .Show = -1 Then
        SavePath = .SelectedItems(1) & "\export.txt"
    End If
End With

ifile = FreeFile
Open SavePath For Append As ifile
Print #ifile, Worksheets("Datenexport").Cells(10, 8)
Close ifile

Hiermit kannst du den Speicherort manuell auswählen und die Datei dort anlegen.


Praktische Beispiele

  1. Einfaches Exportieren einer Zelle:

    ifile = FreeFile
    Open ThisWorkbook.Path & "\" & "export.txt" For Append As ifile
    Print #ifile, Worksheets("Datenexport").Cells(10, 8)
    Close ifile
  2. Exportieren eines Zellbereichs:

    ifile = FreeFile
    Open ThisWorkbook.Path & "\" & "export.txt" For Append As ifile
    For Each cell In Worksheets("Datenexport").Range("A1:B6")
       Print #ifile, cell.Value
    Next cell
    Close ifile
  3. Exportieren mit Benutzerabfrage für den Pfad:

    Dim SavePath As String
    With Application.FileDialog(msoFileDialogFolderPicker)
       If .Show = -1 Then
           SavePath = .SelectedItems(1) & "\export.txt"
       End If
    End With
    
    ifile = FreeFile
    Open SavePath For Append As ifile
    Print #ifile, Worksheets("Datenexport").Cells(10, 8)
    Close ifile

Tipps für Profis

  • Verwende vba aktueller pfad für dynamische Dateipfade, um die Wartbarkeit deines Codes zu verbessern.
  • Implementiere Fehlerbehandlungsroutinen, um unerwartete Laufzeitfehler zu vermeiden.
  • Experimentiere mit verschiedenen Dateiformaten, nicht nur TXT. Du kannst auch CSV-Dateien oder Excel-Formate erstellen, indem du die entsprechenden VBA-Funktionen nutzt.

FAQ: Häufige Fragen

1. Wie kann ich den Dateinamen dynamisch gestalten? Du kannst den Dateinamen aus einer Zelle oder einer Variable generieren, indem du den Code so anpasst:

Dim FileName As String
FileName = Worksheets("Datenexport").Cells(1, 1).Value & ".txt"
Open ThisWorkbook.Path & "\" & FileName For Append As ifile

2. Kann ich die exportierte Datei automatisch öffnen? Ja, du kannst die exportierte Datei mit dem folgenden Befehl öffnen:

Shell "notepad.exe " & ThisWorkbook.Path & "\export.txt", vbNormalFocus

Durch diese Anpassungen und Tipps kannst du effizienter mit VBA arbeiten und deine Excel-Daten an einem gewünschten Ort speichern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige