Clever-Excel-Forum

Normale Version: VBA: Zelleninhalt in txt-Datei speichern mit VORGEGEBENEM Ordnerpfad
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi,

ich möchte gerne ausgewählte Zelleninhalte in eine txt-Datei speichern und habe mir folgendes Makro geschrieben:

Code:
Sub KundendatenSpeichern()
Dim vntFileSaveName As Variant
Dim intFF As Integer

vntFileSaveName = Application.GetSaveAsFilename(fileFilter:="Text Files (*.txt), *.txt")
If vntFileSaveName = False Then Exit Sub

With ThisWorkbook.Worksheets("Eingabe")
   intFF = FreeFile()
   Open vntFileSaveName For Output As #intFF
   Print #intFF, Join(WorksheetFunction.Transpose(.Range("C5:C13")), vbCrLf)
   Close #intFF
End With
End Sub

Klappt alles wunderbar. Allerdings öffnet das Fenster (bzw. der "Speichern Unter" Dialog) immer im Standardpfad "Eigene Dateien".

Was müsste ich wo noch hinzufügen, um den Speicherort "D:/Kundendaten" standardmäßig geöffnet zu bekommen anstelle der "Eigenen Dateien"?

Freue mich sehr von euch zu hören :)

VLG
Thommy
Code:
vntFileSaveName = Application.GetSaveAsFilename(InitialFileName:="D:\Kundendaten\", fileFilter:="Text Files (*.txt), *.txt")
Klasse, vielen Dank.

Und zum Öffnen wäre es?
Code:
vntFileOpenName = Application.GetOpenFilename(InitialFileName:="D:\Kundendaten\", fileFilter:="Text Files (*.txt), *.txt")

Oder anders? Klappt nämlich auch nicht so wirklich :/

Der Code schaut bei mir aktuell so aus:

Code:
Sub KundendatenLaden()
Dim vntFileOpenName As Variant
Dim avntDaten As Variant
Dim intFF As Integer, txt As String

vntFileOpenName = Application.GetOpenFilename(fileFilter:="Text Files (*.txt), *.txt")
If vntFileOpenName = False Then Exit Sub

With ThisWorkbook.Worksheets("Eingabe")
   intFF = FreeFile()
   Open vntFileOpenName For Input As #intFF
   .Range("C5:C13") = WorksheetFunction.Transpose(Split(Input(LOF(1), #intFF), vbCrLf))
   Close #intFF
End With
End Sub
Zum Öffnen hast Du den richtigen Code. Und bei mir klappt es auch wirklich.

Zitat:Klappt nämlich auch nicht so wirklich :/
Oder was soll "nicht so wirklich" heissen?
Bei mir kommt die Meldung "Fehler beim Kompilieren: Benanntes Argument nicht gefunden". Dabei wird "InitialFileName:=" hervorgehoben. Hier mein Code:

Code:
Sub KundendatenLaden()
Dim vntFileOpenName As Variant
Dim avntDaten As Variant
Dim intFF As Integer, txt As String

vntFileOpenName = Application.GetOpenFilename(InitialFileName:="D:\Kundendaten\", fileFilter:="Text Files (*.txt), *.txt")
If vntFileOpenName = False Then Exit Sub

With ThisWorkbook.Worksheets("Eingabe")
   intFF = FreeFile()
   Open vntFileOpenName For Input As #intFF
   .Range("C5:C13") = WorksheetFunction.Transpose(Split(Input(LOF(1), #intFF), vbCrLf))
   Close #intFF
End With
End Sub
speichern


Code:
Sub M_snb()
  With Application.FileDialog(2)
    .InitialFileName = "G:\OF\*.txt"
    .FilterIndex = 12
    If .Show Then CreateObject("scripting.filesystemobject").createtextfile(.SelectedItems(1)).write Join([Transpose(Eingabe!C5:C13)], vbCrLf)
  End With
End Sub

lesen


Code:
Sub M_snb_()
  With Application.FileDialog(3)
    .InitialFileName = "G:\OF\*.txt"
    If .Show Then [Eingabe!C5:C13].Offset(, 6) = Application.Transpose(Split(CreateObject("scripting.filesystemobject").opentextfile(.SelectedItems(1)).readall, vbCrLf))
  End With
End Sub