ich habe ein Text-In-Spalten-Problem. Ich bekomme eine Datei angeliefert, die in der ersten Zeile der Tabelle (sozusagen über den Spaltennamen) eine Formatangabe hat. Wenn dort steht "DECIMAL", dann soll eine Umwandlung in eine Zahl ohne Nachkommastellen erfolgen, wenn dort steht "DATE", dann folglich eine Umwandlung in ein Datum.
Die Datei wird in eine Tabelle eingefügt, in der die Formatangabe in Zeile 8 steht. In Zeile 9 steht eine Beschreibung der Spalte und in Zeile 10 steht der eigentliche Spaltenname.
Mit folgendem Code wandel ich bereits erfolgreich das Format, aber mein Makro läuft danach nicht weiter, weil exakt jene Spalten, die ich umwandle, aus mysteriösem Grund auf einmal 3 Zeilen nach oben verschoben werden. Sprich, nach Anwendung haben die Spalten das richtige Format, allerdings ist das Format nun in Zeile 5, die Beschreibung in 6 und der Name in Zeile 7.
Was genau mache ich da falsch? Vielleicht kann jemand mir da helfen!
Danke Euch!!
Public Sub umwandeln()
For ziel_col = 1 To ziel_lastcol
If ziel_ws.Cells(8, ziel_col) = "DATE" Then
ziel_col_txt = Split(Cells(1, ziel_col).Address, "$")(1)
Let ziel_col_rge = ziel_col_txt & 1
ziel_ws.Columns(ziel_col_txt).TextToColumns Destination:=ziel_ws.Range(ziel_col_rge) _
, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True
ziel_ws.Columns(ziel_col_txt).NumberFormat = "m/d/yyyy"
End If
If ziel_ws.Cells(8, ziel_col) = "DECIMAL" Then
ziel_col_txt = Split(Cells(1, ziel_col).Address, "$")(1)
Let ziel_col_rge = ziel_col_txt & 1
ziel_ws.Columns(ziel_col_txt).TextToColumns Destination:=ziel_ws.Range(ziel_col_rge) _
, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
ziel_ws.Columns(ziel_col_txt).NumberFormat = "0"
End If
Next ziel_col
End Sub