669 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,

möchte eine .csv-Datei in Spalten zerlegen.
Die darin enthaltenen Zahlenwerte sind durch Komma getrennt und bei den Zahlenwerten sind die Dezimalstellen mit Punkt abgegrenzt.
Wenn ich "Text in Spalten" angewendet habe, werden die meisten Zahlenwerte daraufhin in den erhaltenen Spalten angezeigt mit Punkt zur Abgrenzung der Dezimalstellen.
Allerdings gibt es andere Zahlenwerte, die bei der Anwendung von "Text in Spalten" in Datumsangaben umgewandelt werden (z. B. wird 1.23 zu "Jan 23" oder 18.10 zu  "18. Oct".
Statt dieser Datumsangaben möchte ich alle Zahlenwerte nach der Anwendung von "Text in Spalten" als Zahlenwerte in den Spalten wiederfinden.
Wie geht das?

Beste Grüße

5 Antworten

0 Punkte
Beantwortet von ch55 Experte (3.8k Punkte)
Hallo,

erstelle eine Tabelle, in der du die betreffende e Zielspalte/n entsprechend formatierst.
Die csv exportierts du dann nicht in eine neu Tabelle (mappe1), sondern in diese zuvor formatierte Tabelle, das sollte das problem lösen.

MfG
0 Punkte
Beantwortet von
Hallo Community :-)

Aus der Kramkiste .-)

Gruß Nighty

1)Genutzter Bereich als Text formatieren
2)Datei Import
3)Makrostart

Gruß Nighty

Der zu nutzende Bereich in der zweiten Zeile anpassen

[code]Sub Wechsel()
    Dim Zelle As Range
    For Each Zelle In Range("A2:A" & ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row)
        If InStr(Cells(Zelle.Row, Zelle.Column), ",") > 0 And InStrRev(Cells(Zelle.Row, Zelle.Column), ",") > 0 And InStr(Cells(Zelle.Row, Zelle.Column), ",") <> InStrRev(Cells(Zelle.Row, Zelle.Column), ",") Then
            Cells(Zelle.Row, Zelle.Column).Replace What:=",", Replacement:="."
            Cells(Zelle.Row, Zelle.Column).NumberFormat = "d/m/y"
        End If
        If InStr(Cells(Zelle.Row, Zelle.Column), ".") > 0 And InStr(Cells(Zelle.Row, Zelle.Column), ".") = InStrRev(Cells(Zelle.Row, Zelle.Column), ".") Then
            Cells(Zelle.Row, Zelle.Column).Replace What:=".", Replacement:=","
            Cells(Zelle.Row, Zelle.Column).NumberFormat = "0.00"
        End If
    Next Zelle
End Sub[/code]
0 Punkte
Beantwortet von
Hallo Community

Bei zu langer Laufzeit!
Daten in ein Array und dieses dann abfragen!

Gruß Nighty
0 Punkte
Beantwortet von
Hallo Community

obiges Makro ist für Mischwerte

Sollten die Daten Sortiert sein,dann ohne Makro
z.b.
Spalte A Datum
Spalte B Werte

1)Spalten als Text formatieren
2)Datei Import

Für jede Spalte ausführen
3) Selectierte Spelte>Suchen und ersetzen
4) Selectierte Spelte Formatieren

Gruß Nighty
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

wenn du den Import-Assistenten verwendest dann gibt es bei Schritt 3, in dem du das Format der zu importierenden Dateien festlegst, die Schaltfläche "Weitere ..." (rechts im Fenster, in Höhe des Datumformats).
Drücke diese Schaltfläche und wähle als Dezimaltrennzeichen den Punkt und lösche den Punkt bei Tausendertrennzeichen. Bestätige mit OK und lasse das Format als Standard und drücke auf Fertigstellen.

Gruß

M.O.
...