Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ändere Dezimaloperator für Variable Anzahl Spalten

Forumthread: Ändere Dezimaloperator für Variable Anzahl Spalten

Ändere Dezimaloperator für Variable Anzahl Spalten
17.06.2014 20:01:58
Johannes Hauck

Ich versuche gerade mehrer txt Dateien in ein Workbook zu importieren was soweit auch ganz klappt. Nur haben meine Textfiles unterschiedlich viele Spalten jetzt möchte ich das je nachdem wieviele Spalten meine Datei hat, auch bei allen Spalten der Dezimal Operator von einem Punkt in ein Komma geändert wird.
Komme da leider nicht weiter.
Hier der dafür zuständige Code-Teil:
x = 1
Set wkbTemp = Workbooks.Open(Filename:=FilesToOpen(x))
wkbTemp.Sheets(1).Copy
Set wkbAll = ActiveWorkbook
wkbTemp.Close (False)
wkbAll.Worksheets(x).Columns("A:A").TextToColumns _
Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, _
Tab:=False, Semicolon:=False, _
Comma:=False, Space:=True, _
FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1)), DecimalSeparator:=".", ThousandsSeparator:=" ", _
TrailingMinusNumbers:=True
x = x + 1
Bisher schaffe ich es nur indem ich die Anzahl der Spalten manuell festlege.
Hat da jemand einen Tip für mich.
Mein Idee wäre, die Anzahl der Spalten zu zählen und dann die Fieldinfo als Schleife durchlaufen zu lassen.
Also ungefähr so:
lastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
For a=0 to lastCol-1
FieldInfo:=Array(Array(a+1, 1)
next a
Nur leider schaffe ich nicht das in den vorhanden code zu integrieren.
Viele Grüße
Johannes

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ändere Dezimaloperator für Variable Anzahl Spalten
17.06.2014 22:09:37
Nepumuk
Hallo,
ohne eine Mustertextdatei wird das nix.
Gruß
Nepumuk

AW: Ändere Dezimaloperator für Variable Anzahl Spalten
18.06.2014 00:03:38
Daniel
Hi
der Decimal- und ThousandsSeperator gilt immer für alle Spalten der Tabelle.
mit der FieldInfo legst du lediglich fest, ob der jeweilige Spalteninhalt als Zahl, Text oder Datum interpretiert oder ganz weg gelassen werden soll.
wenn du die FieldInfo für eine grössere Anzahl von Spalten angeben willst, dann so:
1. schreibe vor dem TextToColumns die FieldInfo in eine Arrayvariable:
dim FInfo(1 to 99) as Variant
dim i as long
for i = 1 to 99
FInfo(i) = Array(i, 1)
Next
im TextToColumns gibst du dann diese Variable an:
...
Comma:=False, Space:=True, _
FieldInfo:=FInfo, DecimalSeparator:=".", ThousandsSeparator:=" ", _
TrailingMinusNumbers:=True
die Anzahl der Spalten und die Anzahl der Einträge in FieldInfo muss nicht genau übereinstimmen.
hast du mehr Spalten als Werte in der FieldInfo, dann werden die restlichen Spalten mit dem Standardwert formatiert, hast du weniger Spalten, werden die überzähligen Werte in der FieldInfo ignoriert.
Gruß Daniel

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige