csv-formatieren
01.10.2015 10:48:24
svenja
ich habe ein Makro geschrieben, durch das die Daten aus einer .csv-Datei nach gewünschten Spalten verschoben werden:
1. die ursprunglichen Datensätze von jeweiligen Spalten in der csv-Datei sind z.B.:
A: "NCR-ID"
B: der Wert von "NCR-ID"
C: "Name"
D: der Wert von "Name"
E: "Datum"
F: der Wert von "Datum"
.
.
.
2. Nun werden die Definitionsspalten A, C, E...gelöscht, und die Werte von diesen Definition in anderen Spalten (bleiben aber erstmal in dieser Datei) verschoben werden, sodass diese Werte in einer richtigen (gewünschten) Reihenfolge stehen, kopiert werden können und in eine andere Excel-Liste eingefügt werden können.
Genaue Verschiebrichtungen möchte ich wie folgt:
die Werte von Spalte () nach Spalte () verschieben (ausschneiden & einfügen)
B --> G
D --> M
F --> N
H --> D
J --> E
L --> H
N --> I
P --> L
R --> O
T --> P
V --> Q
X --> R
Z --> S
AB --> C
AD --> J
Mein Makro ist so:
Sub csvformatieren()
Range("A:A,C:C,E:E,G:G,I:I,K:K,M:M,O:O,Q:Q,S:S,U:U,W:W,Y:Y,AA:AA,AC:AC,AE:AE").Select
Selection.Delete Shift:=xlToLeft
Cells.Select
Cells.EntireColumn.AutoFit
Range("A:A").Select
Selection.Insert Shift:=xlToRight
Selection.Insert Shift:=xlToRight
Range("D:E").Select
Selection.Cut
Range("K:K").Select
Selection.Insert Shift:=xlToRight
Range("F:F").Select
Selection.Insert Shift:=xlToRight
Range("Q:Q").Select
Selection.Cut
Range("G:G").Select
Selection.Insert Shift:=xlToRight
Range("H:I").Select
Range("R:R").Select
Selection.Cut
Range("J:J").Select
Selection.Insert Shift:=xlToRight
Range("H:I").Select
Range("K:K").Select
Selection.Insert Shift:=xlToRight
End Sub
Das ist aber die dumme Lösung. Könnte jemand dabei helfen, um das Makro kompakter zu schreiben?Vielen Dank schonmal im Voraus!
lg
Svenja