Excel: schrittweises Auto-Ausfüllen

tagchen,

eine Spalte ist wie folgt aufgebaut:
A
1: adam
2: —
3: —
4: —
5: eva
6: —
7: hugo
8: —
9: —

Die Zellen, in denen „—“ steht, sollen jeweils den Wert der nächsten über ihr stehenden Zelle bekommen.

Über ein verschachteltes „suchen + ersetzen“ Makro gehts, ist aber nicht elegant und sehr langsam, da die Zelle viele Datensätze enthält.

Seht ihr eine bessere Möglichkeit?

Thx in advance,
oliver

Hi Oliver,

wie wäre es mit einem Makro? Du musst nur noch die „A9999“ anpassen, indem Du dort die letze Zelle reinschreibst, die ausgefüllt werden soll.

For Each c In Range(„A1“, „A9999“)
If c „“ Then NeuerName = c Else c.Value = NeuerName
Next

Wenn Du willst, kannst Du auch in die letzte auszufüllende Zelle ein "*"chen machen und das Makro so abändern:

For Each c In Range(„A1“, „A9999“)
If c = „*“ then c.Value = NeuerName: ExitFor
If c „“ Then NeuerName = c Else c.Value = NeuerName
Next

Dann wird in der Zelle mit dem „*“ gestoppt, und Du brauchst nichts mehr am Makro zu ändern. Auf jeden Fall steht in der Tabelle nachher:

1: adam
2: adam
3: adam
4: adam
5: eva
6: eva
7: hugo
8: hugo
9: hugo

War’s das, was Du wolltest?

Gruß

Sculpture

Spalte einfügen?
Hallo!

Wenn du es über eine verschachtelte Ersetzen-Aktion hinbekommen hast, wirst du wohl auch auf die Idee gekommen sein, eine Spalte hinter den Namen einzufügen?! Damit würde es sehr leicht gehen:

=wenn(a20;a2;b1)

wäre dann z. B. die Formel in Zelle B2, wenn die Namenliste in Zelle A1 beginnt. Wenn tatsächlich „—“ in den leeren Feldern steht, müsste das Kriterium entsprechend a2"—" lauten.
Wenn es aus irgendwelchen Gründen nicht möglich ist, eine Spalte einzufügen, kannst du das Problem relativ einfach mit einem Makro lösen. Wenn du gar kein VBA kennst, kannst du dich ja noch mal melden.

Schöne Grüße
Siegfried

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]