Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1452to1456
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

txt-Datei erzeugen

txt-Datei erzeugen
22.10.2015 08:28:04
Larissa Apfel

Hallo,
ich möchte folgendes machen:
Ich habe in Excel ein Blatt, welches ich als txt-Datei erzeugen möchte. Ich möchte, dass die Zellen mit einem Semikolon getrennt werden. In dem Blatt stehen die Werte jeweils in einer Zelle. Wenn ich die Datei speicher (TXT MSDOS), dann sind die Zellen mit einem Tab getrennt.
Folgenden Code habe ich bisher:

Dim wb As Excel.Workbook
Set wb = Excel.ActiveWorkbook
ActiveWorkbook.SaveAs Filename:="Z:\Makros\PdfToXLS\Import.txt", _
FileFormat:=xlCSVMSDOS, CreateBackup:=False
ActiveWorkbook.Close SaveChanges:=True
'Workbooks.Open ("Z:\Makros\Lagerauftraege\Import.xls")
Dim strOut As String, i As Long, arrTmp
i = 1
arrTmp = Range(Cells(i, 1), Cells(i, Columns.Count).End(xlToLeft).Offset(, 3))
arrTmp = WorksheetFunction.Transpose(arrTmp)
arrTmp = WorksheetFunction.Transpose(arrTmp)
strOut = Join(arrTmp, ";")
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
arrTmp = Range(Cells(i, 1), Cells(i, Columns.Count).End(xlToLeft).Offset(, 1))
arrTmp = WorksheetFunction.Transpose(arrTmp)
arrTmp = WorksheetFunction.Transpose(arrTmp)
strOut = strOut & vbCrLf & Join(arrTmp, ";")
Next
'ActiveWorkbook.Close SaveChanges:=True
Open "Z:\Makros\PdfToXLS\Import.txt" For Output As #1
Print #1, strOut
Close #1
Jetzt wird alles mit einem Komma getrennt und kein Semikolon. Wo liegt mein Fehler?

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: txt-Datei erzeugen
22.10.2015 09:32:00
ede
Hallo Larrisa,
ich mach das immer Zelle für Zelle wie im nachfolgenden Beispiel:

Open "Z:\Makros\PdfToXLS\Import.txt" For Output As #1
For zeile = 2 To letzteZeile
strOut  = ""
For spalte = 1 to letzteSpalte
strOut =strOut & cells(zeile,spalte) & ";"
next spalte
Print #1, strOut
Next zeile
Close #1
Gruss

AW: txt-Datei erzeugen
22.10.2015 09:36:50
Larissa Apfel
Leider sind immer noch Kommata vorhanden. Kann das an einer Excel-Einstellung liegen?

AW: txt-Datei erzeugen
22.10.2015 09:44:10
ede
Hallo noch mal,
dann stell mal eine Beispieldatei ab, dann können wir das besser nachvollziehen.
Gruss

AW: txt-Datei erzeugen
22.10.2015 10:05:28
Larissa Apfel
Okay habe es getestet und bei mir kommen Komma. Was mache ich jetzt nun?

AW: txt-Datei erzeugen
22.10.2015 10:09:21
ede
übermittle mal dienen Code...

AW: txt-Datei erzeugen
22.10.2015 10:13:17
Larissa Apfel
Ich habe deine Datei getestet!

AW: txt-Datei erzeugen
22.10.2015 10:17:35
ede
und wie sieht da der Inhalt von der Datei c:\temp\import.txt aus?

AW: txt-Datei erzeugen
22.10.2015 10:19:10
Larissa Apfel
K,Onlinebestellung vom Kunden,OBEK15/024899,400343,,,,,Import,10/19/2015
D,ONLINERABATT,,,,,,,,
D,BRAUN-4606701V,"5,0000;",,,,,,,
D,BRAUN-4606710V,"5,0000;",,,,,,,
F,10/19/2015,Test;,Onlineshop,,,,,,

Anzeige
AW: txt-Datei erzeugen
22.10.2015 10:19:48
Larissa Apfel

Sub txtErzeugen()
Dim wb As Excel.Workbook
Set wb = Excel.ActiveWorkbook
ActiveWorkbook.SaveAs Filename:="Z:\Makros\PdfToXLS\Import.txt", _
FileFormat:=xlCSVMSDOS, CreateBackup:=False
ActiveWorkbook.Close SaveChanges:=True
'Workbooks.Open ("Z:\Makros\Lagerauftraege\Import.xls")
Dim strOut As String, i As Long, arrTmp
i = 1
arrTmp = Range(Cells(i, 1), Cells(i, Columns.Count).End(xlToLeft).Offset(, 3))
arrTmp = WorksheetFunction.Transpose(arrTmp)
arrTmp = WorksheetFunction.Transpose(arrTmp)
strOut = Join(arrTmp, ";")
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
arrTmp = Range(Cells(i, 1), Cells(i, Columns.Count).End(xlToLeft).Offset(, 1))
arrTmp = WorksheetFunction.Transpose(arrTmp)
arrTmp = WorksheetFunction.Transpose(arrTmp)
strOut = strOut & vbCrLf & Join(arrTmp, ";")
Next
'ActiveWorkbook.Close SaveChanges:=True
Open "Z:\Makros\PdfToXLS\Import.txt" For Output As #1
Print #1, strOut
Close #1
End Sub

Anzeige
AW: txt-Datei erzeugen
22.10.2015 10:22:25
ede
das kann nicht der Inhalt meiner Testdatei sein, da im testbeispiel erst ab zeile 2 angefangen wird!!!

AW: txt-Datei erzeugen
22.10.2015 10:25:35
Larissa Apfel
Wenn ich deine Datei ausführe, dann funktioniert es - sorry! Aber wenn ich den Code in meine Datei hinzufüge (wirklich copy + paste + Pfad angepasst), dann sind es wieder nur Kommata.

AW: txt-Datei erzeugen
22.10.2015 10:25:57
Larissa Apfel

Sub txtErzeugen()
Dim wb As Excel.Workbook
Set wb = Excel.ActiveWorkbook
ActiveWorkbook.SaveAs Filename:="Z:\Makros\PdfToXLS\Import.txt", _
FileFormat:=xlCSVMSDOS, CreateBackup:=False
ActiveWorkbook.Close SaveChanges:=True
Open "Z:\Makros\PdfToXLS\Import.txt" For Output As #1
For zeile = 2 To 5
strOut = ""
For spalte = 1 To 5
strOut = strOut & Cells(zeile, spalte) & ";"
Next spalte
Print #1, strOut
Next zeile
Close #1
End Sub

Anzeige
AW: txt-Datei erzeugen
22.10.2015 10:33:35
ede
lass das weg
ActiveWorkbook.SaveAs ....

AW: txt-Datei erzeugen
22.10.2015 10:51:38
Larissa Apfel
Wie bekomme ich dann aus der Excel-Mappe eine txt-Datei erzeugt?

AW: txt-Datei erzeugen
22.10.2015 11:03:06
ede
Datei speichern unter, gewünschten DateiTyp auswählen und fertig

AW: txt-Datei erzeugen
22.10.2015 11:12:26
Larissa Apfel
Ja das ist mir schon klar, wenn ich das aber automatisieren möchte und ein makro aufzeichne, dann bekomme ich genau den Code-Teil, den Du mir empfohlen hast wegzulassen.

AW: txt-Datei erzeugen
22.10.2015 11:13:41
Larissa Apfel
Ja das ist mir schon klar, wenn ich das aber automatisieren möchte und ein makro aufzeichne, dann bekomme ich genau den Code-Teil, den Du mir empfohlen hast wegzulassen.

AW: txt-Datei erzeugen
22.10.2015 11:20:02
ede
noch mal von ganz vorne damit ich dich richtig verstehe:
-du hast eine Exceldatei (xlsm)
-in dieser steht der Quellcode
-ebenfalls der Inhalt im ersten Arbeitsblatt, den du in eine Txt-Datei schreiben möchtest
ist das so richtig?

Anzeige
AW: txt-Datei erzeugen
22.10.2015 11:21:36
Larissa Apfel
Genau. Ich habe eine xls-Datei. Dort ist ein Arbeitsblatt, welches als Import.txt gespeichert werden soll. Wenn ich das per Makro-Aufzeichnung automatisiere, speichert mir Excel die Datei tab-getrennt. Das ist das Problem. Ich brauche Semikolon und mein Programm erzeugt Kommata. Wenn ich dein Programm verwende bekomme ich ebenfalls Kommata.

AW: txt-Datei erzeugen
22.10.2015 11:21:33
Rudi Maintaire
hallo,
aus meinem Archiv:
Public Sub prcCreateTXT()
Dim intFileNumber As Integer
Dim lngRow As Long
Dim vntArray As Variant
Dim strText As String
Dim i As Integer
Dim sFile
Const strPre As String = ";"
Reset
sFile = "Z:\Makros\PdfToXLS\Import.txt"
intFileNumber = FreeFile
Open sFile For Output As #intFileNumber
With ActiveSheet.UsedRange
For lngRow = 1 To .Row + .Rows.Count - 1
vntArray = Range(Cells(lngRow, 1), _
Cells(lngRow, .Column + .Columns.Count - 1))
vntArray = WorksheetFunction.Transpose(WorksheetFunction.Transpose(vntArray))
strText = Join(vntArray, strPre)
Print #intFileNumber, strText
Next
End With
Close #intFileNumber
End Sub
Gruß
Rudi

Anzeige
AW: txt-Datei erzeugen
22.10.2015 11:29:12
Larissa Apfel
Vielen Dank! Es hat geklappt :)!

AW: txt-Datei erzeugen
22.10.2015 11:30:26
ede
zum Glück, war eine schwere Geburt...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige