1.1k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Leute!!

Habe ein Makro geschrieben das mir automatisch Textdateien einliest, abändert und anschließend als .xlsx abspeichert. Öffnen und Abspeichern funktioniert, die Bearbeitung auch, wenn ich den Bearbeitungscode jedoch in den Öffnen/Speichern Code einbinde, liest er die txt-Dateien nur mehr halb ein, also es fehlen Daten... jmd eine lösung? anbei mein Code:

Sub Formatierung()
'
' Formatierung Makro
'

Dim stropeningdirectory As String
Dim strstoragedirectory As String
Dim strfile As String
Dim strTyp As String
Dim strfilename As String
Dim strName As String
strName = "_extracted"
strTyp = "*.txt"
Application.ScreenUpdating = False
stropeningdirectory = "C:\Test\"
strstoragedirectory = "C:\Test2\"
strfilename = Dir(stropeningdirectory + strTyp)
Do While strfilename <> ""
'MsgBox ("Found File : " + strfilename)


Workbooks.OpenText Filename:=(stropeningdirectory + strfilename), _
DataType:=xlDelimited, Space:=True
ActiveWindow.View = xlPageBreakPreview
ActiveWindow.View = xlNormalView

'Ab hier ist der Bearbeitungscode

Range("A:A,D:D,E:E,G:K,M:AN").Select
Range("M1").Activate
Selection.Delete Shift:=xlToLeft
Columns("C:C").EntireColumn.AutoFit
Columns("C:C").Select
Selection.NumberFormat = "0.000000"
Range("A1").Select
ActiveCell.FormulaR1C1 = "10000000"
Selection.Copy
Columns("C:C").Select
Range("C2:C21").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlDivide, SkipBlanks _
:=False, Transpose:=False
Rows("1:1").Select
Selection.Delete Shift:=xlUp
Columns("B:B").EntireColumn.AutoFit
Columns("C:C").EntireColumn.AutoFit

'Füge ich die Textdatei manuell ein, und lass den obigen code laufen, passt die Datei genau wie ich sie haben will

ActiveWorkbook.SaveAs Filename:=strstoragedirectory + strfilename + ".xlsm", FileFormat:=52, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close

strfilename = Dir
Loop
Application.ScreenUpdating = True
End Sub


4 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo,

wie soll man den Code testen oder ändern, wenn Du die zugehörige Textdatei nicht mitlieferst?

Gruß
Rainer
0 Punkte
Beantwortet von
O sorry!!

Bin jetz nich am richtigen PC, liefere sie morgen nach :-/

Falls es hilft, es sind immer 20 Reihen, und die Spalten gehen immer bis AN.

So wie ich das sehe verschiebt sich um eine Spalte nach rechts wenn ein Leerzeichen drinnen ist. also Datensatz 1 (Spalte B) sieht zb so aus:

text Nummer Wert

und den splittet er jetz in 3 Spalten auf, das soll er aber nur bei Tabstopps machen. Komischerweise macht er das wenn ich es wie gesagt manuell reinzieh wie gewünscht.

Kann man das problem ohne txt Datei lösen?

hoffe ich mach nicht zu große schwierigkeiten...

lg
0 Punkte
Beantwortet von
Habe den Fehler soeben selbst behoben!

Ich Idi** hatte Space=True, das war der ehler beim einlesen!

Danke Rainberg durch dein Nachfragen bin ich auf den Fehler gestossen :)
Morgen gleich mal testen! :D

lg
0 Punkte
Beantwortet von
Noch eine Frage zum Abspeichern, is mir eben grad erst aufgefallen. Und zwar speichert er die Dateien mit meinem Code folgendermaßen ab:

Dateibezeichnung.txt.xlsm

Nun meine Frage, gibts eine Möglichkeit dieses ".txt" da irgendwie rauszubekommen?

Danke im Vorraus.
lg
...