Liebes Forum,
wer von euch kann mir helfen?
Ich versuche folgendes mit einem Makro zu lösen: Meine ExcelTabelle enthält mehrere Spalten mit Datumswerten. Zwischen den Datumsspalten sind ca. 4-6 Spalten mit Messwerten. Da es nicht zu jedem Datum ein Messwert gibt, möchte ich die Datumsspalten an eine „General-Datumsspalte“ in Spalte A anpassen. Und zwar so, dass alle Datumsspalten mit der ersten Spalte verglichen werden und wenn die Datumswerte ungleich sind, der gesamte Bereich zwischen den Datumsspalten in die richtige Zeile (zu dem richtigen Datum) aus Spalte A rutscht.
So sehen die Spalten aus:
Spalte A:
12.01.1990
13.01.1990
14.01.1990
…
01.12.2010
Spalte B:
13.01.1990
01.12.2010
Spalte C-E: Messwerte zu den Datumswerten aus Spalte B (in diesem Falle nur zwei Messwerte,da nur an zwei Tagen gemessen)
Spalte F: wieder Datumswerte mit anschließenden Spalten G-L Messwerte für die Datumswerte aus Spalte F
Es sollen also alle Bereiche mit ihrer Datumsspalte an die erste Datumsspalte (A) angepasst werden.
Im Beispiel müsste also der Bereich mit Datum 13.01.1990 eine Zeile nach unten rücken, um mit Spalte A in einer Zeile zu stehen. Der Bereich mit Datum 01.12.2010 müsste bis in die letzte Zeile rücken, da dieses Datum in Spalte A in der letzten Zeile steht.
Bisher habe ich das ganze für nur einen Datumsbereich versucht. Also Spalte A: Datumswerte (jeder Tag von 1990 bis heute) und in Spalte B Datumswerte (auch von 1990 bis heute, aber nicht jeder Tag). Spalte C bis G Messwerte zu Spalte B, die mit verrückt werden sollen.
Leider fügt mir mein Makro nur Leerzeilen zwischen jedes Datum ein und macht so gar nicht das was es soll Ich überprüfe die Datumsspalten zwar auf Ungleichheit, sie werden aber nicht an die richtige Stelle verschoben. Und ich weiß auch nicht, wie ich den Vergleich weiter laufen lassen, wenn die Datumswerte gleich sind und die Zeilen nicht verrückt werden müssen…:
Sub Reihen_nach_unten_verschieben()
Application.ScreenUpdating = False
Dim ZeileMax As Long
Dim intz As Long
With Worksheets(„Tabelle1“)
ZeileMax = Worksheets(„Tabelle1“).Cells(Rows.Count, 1).End(xlUp).Row
For intz = 3 To ZeileMax Step 1
If .Cells(intz, 2).Value .Cells(intz, 1).Value Then
Range(„B“ & intz + 1, „L“ & intz + 1).Select
Selection.Insert Shift:=xlDown
End If
Next intz
End With
Application.ScreenUpdating = True
End Sub
Bin sehr dankbar für jegliche Hilfe.
Beste Grüße,
Niol
Achso: Der Bereich zum Verschieben liegt also immer zwischen zwei Datumsspalten, wobei B die erste für den ersten Bereich ist.
Und wie bekomme ich das .Select weg?
Hoffentlich hab ichs einigermaßen verständlich beschrieben.