hab hier im Forum folgendes Makro gefunden:
Sub Test_Text2Column()
Dim a As Long
Dim d, xlfile As String
a = 1
d = Dir("C:\MeinOrdner\")
Do While d ""
If UCase(Mid(d, Len(d) - 3, 4)) = UCase(".TXT") Then 'nur TXT-files nehmen
xlfile = Mid(d, 1, Len(d) - 4) & ".xlsx"
Workbooks.OpenText Filename:=d, _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 2), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array( _
_
8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1)), TrailingMinusNumbers:=True
Cells.Select
Cells.EntireColumn.AutoFit
Range("A1").Select
MsgBox "Datei: " & d & " wurde umgesetzt und wird jetzt als " & xlfile & " gespeichert." _
_
ActiveWorkbook.SaveAs Filename:=xlfile, _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
' ActiveWindow.Close
ActiveWorkbook.Close
End If
d = Dir
Loop
d = d 'debug-stop only
End Sub
Dies liest aus einem definierten Ordner (C:\MeinOrdner\) ALLE Textdatein (xyz.txt, 1234.txt)aus und macht daraus .xlsx Datein.Das Makro funktionierte zweimal und dann findet er die Datei plötzlich nicht mehr, obwohl er sie richtig bezeichnet (...kann Datei 'xyz.txt' nicht finden...).
Im Makro wird dann der komplette Abschnitt ab
Workbooks.OpenText Filename:=d,
markiert als Fehler.
Warum macht das Makro dies?
Und noch drei Fragen/Bitten zum Makro:
1. Kann das Makro bitte so umgebaut werden, dass ich den Ordner selber auswählen kann, wo es die Datein herholen soll und auch wieder als xlsx hinschreibt
2. Beim Einlesen werden Sonderzeichen (z.B. ß) in Symbole umgewandelt. Liegt dies an
Origin:=xlMSDOS,
und es müsste nur in xlWindows umgeschrieben werden?
3. Spalte A bis C sollen gelöscht werden nach dem einlesen. Könnte dies bitte auch mit eingebaut werden, bin da kläglich gescheitert...
Mit dankbaren Grüßen
René