ich habe eine Tabelle, in welcher nach jeder Zeile zwei Leerzeilen eingefügt und die Zeile darüber nach unten ausgefüllt werden soll (sprich jede Zeile soll jetzt drei mal drinnstehen).
Dafür habe ich mir folgende Makro geschrieben:
Sub zeilen_einfuegen()
Dim y As Integer
Dim x As Integer
y = 1
For x = ActiveCell.Row To 15
ActiveCell.Cells(y + 1, 1).Select
Selection.EntireRow.Insert
Selection.EntireRow.Insert
Rows(y & ":" & y + 2).Select
Selection.FillDown
y = y + 3
Next
End Sub
Bei den ersten beiden Durchläufen läuft das Makro einwandfrei.
Beim dritten Durchlauf hat die Variable y den Wert 7, in der Zeile
ActiveCell.Cells(y + 1, 1).Select
sollte also die Zeile 8 markiert werden. Aus mir vollkommen unverständigen Gründen markiert Excel aber die Zeile 11.
Ich habe schon verschiedene Tests gemacht, z.B. ActiveCell.Range("A" & y+1).Activate oder Range(y+1 & ":" & y+1).Select oder Cells(y+1,1).Activate, das Ergebnis ist immer das selbe - selbst wenn in dieser Zeile die richtige Zelle markiert wird - spätestens beim Einfügen der leeren Zeilen ist Excel wieder in Zeile 11 statt 7.
Hat irgend jemand eine Idee, woran das liegen kann?
mfg
Thomas
PS: zum Test hab ich einfach eine Tabelle mit den Zahlen 1 bis 15 untereinander verwendet, 1 und 2 füllt er korrekt aus, dann wird aber die 6 statt der 3 verdreifacht