Moin,
Ich habe olgenden Code um eine Tabelle zu aktualisieren, wenn eine Zeile in ihr gelöscht wird(Tabelle geht von A-E und von 38 bis max 1038):
Herausfinden, wo die leere(gelöschte) Zeile ist:
n = 0
Do Until Cells(38 + n, 2) = „“ Or n = 1000
n = n + 1
Loop
Herausfinden, wo die Tabelle endet.
m = 0
Do Until Cells(38 + n + 1 + m, 2) = „“ Or m = 1000
m = m + 1
Loop
Reihe für Reihe kopieren, einfügen und löschen.
o = 0
If m = 1 Then m = 2
Do Until o = m - 1
Range(Cells(38 + n + 1 + o, 1), Cells(38 + n + 1 + o, :5)).Copy
Range(Cells(38 + n + o, 1), Cells(38 + n + o, :5)).PasteSpecial
Range(Cells(38 + n + 1 + o, 1), Cells(38 + n + 1 + o, :5)).Delete
Cells(38 + n + o, 1) = o + n
o = o + 1
Loop
Das funktioniert so lange, wie unter dem gelöschten Eintrag noch min 2 beschriebene Reihe sind. Wenn dort nur noch eine ist, dann wird diese kopiert und er geht bis zur vorletzten Reihe alle Reihen durch kopiert sie und fügt sie ein und löscht sie. So war das nicht geplannt und außerdem dauert das immer eine halbe Ewigkeit bis er die 65000 Reihen durchgekaut hat.
- Was ist daran falsch?
- Geht das nicht irgendwie wesentlich einfacher?
z.B. Man kopiert einfach die ganze darunter liegende Tabelle und verschiebt sie eine Reihe nach oben?
Gruß
GURKE