Zeile per Makro einfügen und fortlaufend nummerieren

02/03/2009 - 13:58 von Raffael | Report spam
Hallo,

ich habe folgendes Problem:
Ich habe bereits ein Makro erstellt, mit dem ich in eine Tabelle neue Zeilen
einfügen kann.
In der ersten Spalte der neuen Zeile soll nun eine fortlaufende Nummerierung
erfolgen. Das funktioniert leider nicht. Wenn ich zwei Zeilen oder mehr
einfüge, wird nur die Nummerierung der ersten eingefügten Zeile übernommen.
Also bspw.:

1
2
3
3
3
3
usw.

Meine Frage nun: Wie muss ich mein Makro umschreiben, damit die neuen Zeilen
fortlaufend nummeriert werden?

Zur Orientierung hier mein Makro:

Sub Makro1()
'
Rows("70:70").Select
Selection.Insert Shift:=xlDown
Range("A70").Select
ActiveCell.FormulaR1C1 = "=R[-1]C+1"
Range("B69:T69").Select
Selection.AutoFill Destination:=Range("B69:T70"), Type:=xlFillDefault
Range("B69:T70").Select
Range("B70").Select
End Sub

Ich hoffe, dass mir jemand weiterhelfen kann.

Schöne Grüße
 

Lesen sie die antworten

#1 Eberhard Funke
02/03/2009 - 17:14 | Warnen spam
Am Mon, 2 Mar 2009 04:58:06 -0800 schrieb Raffael:

Ich habe bereits ein Makro erstellt, mit dem ich in eine Tabelle neue Zeilen
einfügen kann.
In der ersten Spalte der neuen Zeile soll nun eine fortlaufende Nummerierung
erfolgen. Das funktioniert leider nicht. Wenn ich zwei Zeilen oder mehr
einfüge, wird nur die Nummerierung der ersten eingefügten Zeile übernommen.
Also bspw.:

1
2
3
3
3
3
usw.

Meine Frage nun: Wie muss ich mein Makro umschreiben, damit die neuen Zeilen
fortlaufend nummeriert werden?

Zur Orientierung hier mein Makro:

Sub Makro1()
'
Rows("70:70").Select
Selection.Insert Shift:=xlDown
Range("A70").Select
ActiveCell.FormulaR1C1 = "=R[-1]C+1"
Range("B69:T69").Select
Selection.AutoFill Destination:=Range("B69:T70"), Type:=xlFillDefault
Range("B69:T70").Select
Range("B70").Select
End Sub




Hallo Raffael,

wenn Du *immer* wieder bei Zeile 70 eine neue Zeile einschiebst, dann
müsstest Du bei allen zuvor eingeschobenen Zeilen (z. B. jetzt 71, 72 usw.)
die Zahl um 1 erhöhen. Dazu müsstest Du jedesmal feststellen, wieviele
Zeilen Du schon eingeschoben hast.

Einfacher ist es, die "Einschiebezeile" nach unten wandern zu lassen.
Es steht z. B in A68: 1, in A69: 2

Sub Zeilen_einfügen()
Dim intI As Integer
For intI = 70 To 75
Range("A" & intI).EntireRow.Insert shift:=xlDown
Range("A" & intI).Value = Range("A" & intI - 1).Value + 1
Next
End Sub

Mit freundlichen Grüssen Eberhard
XP home XL 2000
Eberhard(punkt)W(punkt)Funke(at)t-online.de

Ähnliche fragen