Wie kann ich mit einem Makro unterschiedlich grosse und in den Arbeitsblättern an unterschiedlichen Stellen gelegene Markierungen numerieren?

Hallo Experten!
Als Beispiel: In einem Arbeitsblatt sind die Zellen von A1 bis C20 mit Daten gefüllt. Nun markiere ich aus einem bestimmten Grund (Details möchte ich mir sparen) die Zellen B3 bis B15, wobei die aktive Zelle B3 ist. Diese Auswahl soll nun von B3 beginnend die Nummerierung 1, 2, usw, bis 13 erhalten.
Der Makro soll auch dann funktionieren, wenn diese Nummerierung beim nächsten Blatt in einem anderen Bereich und auch in anderer Länge erfolgen soll. Der Makro soll die Nummerierung immer bei der aktiven Zelle der Auswahl beginnen.
Vorweg schon besten Dank für den Tipp, wie das am besten zu realisieren ist, und
freundliche Grüsse
Wiedhalm

Ganz grob:

Sub fill()
    Dim cell As Range
    first_row = Selection.Row
    For Each cell In Selection.Cells
        cell.Value = cell.Row - first_row + 1
    Next
End Sub

Damit das Makro in jedem Blatt funktioniert, muss es in „Diese Arbeitsmappe“ stehen.
Einen beliebigen Startwert kannst du z.B. per InputBox abfragen:

StartValue = InputBox("Startwert: "). Die „+ 1“ dann natürlich durch „+ StartValue“ ersetzen :wink:

Gruß,

Kannitverstan

PS:
Statt eine InputBox zu benutzen, geht auch StartValue = Cells(first_row, Selection.Column).Value
Damit wird der Wert der ersten markierten Zelle genommen. Nach der Markierung und vor der Ausführung des Makro den gewünschen Wert eintragen und mit Enter bestätigen.

Ach ja: Die Forderung „Der Makro soll die Nummerierung immer bei der aktiven Zelle der Auswahl beginnen.“ erfüllt das Makro nicht. Wenn es auch von unten nach oben nummerieren soll, müßte man es unter Einbeziehung von ActiveCell.Row entsprechend umbauen…

Hallo Kannitverstan!
Danke für die rasche Antwort. Leider will dein Vorschlag nicht recht. In der Syntaxzeile beginnend mit first row… wird Selection blau unterlegt und es kommt die Meldung: „Fehler beim Kompilieren: Function oder Variable erwartet“ . Was habe ich falsch gemacht?
Freundliche Grüsse
Wiedhalm
PS.: Leider vergessen anzugeben: Verwende VB ver 6.5.120 in MS Office Excel 2007 in Win 7 pro, 64 bit

Hallo Kannitverstan!

Dein Makro FUNKTIONIERT.
Wie das so bei Hobbvyprogrammierern ist, habe ich in meiner Mappe viel herumprobiert bevor ich angefragt habe. Dabei dürfte ich irgendwas mit „Selection“ zusammenhängendes beleidigt haben, so dass dein Makro nicht funktioniert hat. Jetzt habe ich das Ganze in einer „jungfräulichen“ Arbeitsmappe ausprobiert und siehe da, der Makro läuft und läuft und läuft.
Ersuche um Verständnis für meine Fehlreaktion und hoffe, dass du den Hobbyprogrammierern trotzdem gewogen bleibt.

PROBLEM GELÖST!

Freundliche Grüsse
Wiedhalm