Hallo Dirk,
das ließ sich aus deiner ersten Beschreibung wirklich nicht herauslesen. Ich ging davon aus, das die Zeilen i und i+1 für ungerades i identisch in den relevanten Werten seien. Für dein Problem, wenn ich es jetzt richtig verstanden habe, sind aber nur ein paar Umstellungen erforderlich. Da ich jetzt auch die Spaltennummern kenne, kann der Code auch vereinfacht werden:
lz = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lz / 2
Cells(i, 1) = Cells(2 * i - 1, 1)
Cells(i, 2) = Cells(2 * i, 1)
Cells(i, 3) = Cells(2 * i - 1, 3)
Cells(i, 4) = Cells(2 * i, 3)
Next i
For i = lz / 2 + 1 To lz
Cells(i, 1) = ""
Cells(i, 3) = ""
Next i
Gruß
Holger
Dirk schrieb am 09.01.2009 09:01:51:
Hallo Holger,
erstmal danke für die schnelle Antwort. Leider läuft das nicht wirklich. Könnte an meiner Beschreibung liegen. Ich versuchs mal verständlicher.
Also, ich habe 4 Spalten A, B, C und D.
In Spalte A stehen n-Datumswerte untereinander.
Spalte B ist leer.
In Spalte C stehen n-Zahlenwerte untereinander.
Spalte D ist leer.
Da jeweils immer zwei untereinander stehenden Werte zusammengehören also A1 + A2 und C1 + C2 soll der Wert aus A2 nach B1 und der Wert aus C2 nach D1 übertragen werden, damit die zusammengehörenden Datums- und Zahlenwerte nebeneinander stehen. Anschließend muss die enstandene leere Zeile gelöscht werden.
Zeile A1 bis D1 sind nun fertig.
Jetzt gehören A2 + A3 zusammen bzw. C2 + C3 und das Spiel geht wieder von vorne los bis keine Werte mehr in den Spalten stehen.
Hoffe, dass ich mein Problem verständlicher beschrieben habe.
Gruß Dirk
Holger schrieb am 08.01.2009 12:35:03:
Hallo Dirk,
ich gehe mal davon aus, dass die beiden Spalten vor dem Verschieben nebeneinander stehen. Quick and dirty:
Spaltennummer = 1 'wo die Datum-Werte stehen
lz = Cells(Rows.Count, Spaltennummer).End(xlUp).Row
For i = 1 To lz / 2
Cells(i, Spaltennummer) = Cells(2 * i, Spaltennummer)
Cells(i, Spaltennummer + 1) = Cells(2 * i, Spaltennummer)
Cells(i, Spaltennummer + 2) = Cells(2 * i, Spaltennummer + 1)
Cells(i, Spaltennummer + 3) = Cells(2 * i, Spaltennummer + 1)
Next i
For i = lz / 2 + 1 To lz
Cells(i, Spaltennummer) = ""
Cells(i, Spaltennummer + 1) = ""
Next i
Gruß
Holger
Dirk schrieb am 08.01.2009 10:13:12:
Hallo,
würde mich freuen wenn mir jemand bei meinem Problem helfen könnte.
Also, ich bereite Daten von einem Export in Excel auf. Habe bereits ein Makro zum entfernen und formatieren der überflüssigen Spalten und Zeilen erstellt. (läuft supi:)
Nun zu meinem Problem: In einer Spalte sind n-Datumswerte und in einer zweiten Spalte sind n-Zahlenwerte untereinander geordnet(siehe Ist). Es gehören jeweils zwei Felder pro Spalte zusammen. Ich möchte die Datumswerte und die Zahlenwerte jedoch nebeneinander haben. Anbei ein Beispiel.
Ist:
1 Datum1 1 Wert1
2 Datum1 2 Wert1
3 Datum2 3 Wert2
4 Datum2 4 Wert2
5 Datum3 5 Wert3
6 Datum3 6 Wert3
Soll:
1 Datum1 1 Datum1 1 Wert1 1 Wert1
2 Datum2 2 Datum2 2 Wert2 2 Wert2
3 Datum3 3 Datum3 3 Wert3 3 Wert3
Danke!
|