Excel-VBA Find()

Moin @all!

Folgendes Problem: Ich habe ein Makro, das so lange laufen soll, bis es keine leeren Zellen mehr in einer Range gibt, wobei die Zellen zufällig (also nicht zeilen- oder spaltenweise) gefüllt werden. Ein Abklappern jeder einzelnen Zelle will ich also vermeiden. Ich müsste eine Abbruchbedingung für meine while-Schleife finden.

Bisher dachte ich, dass ich das mit der find()-Funktion erschlagen könnte. Die kann man ja auf ein range anwenden und die Schleife solange laufen lassen, bis „nothing“ als Rückgabe erzeugt wird. Problem nur: Wie suche ich nach leeren Zellen? „“ als Parameter funktioniert nicht…

Hat jemand eine Idee?

Folgendes Problem: Ich habe ein Makro, das so lange laufen
soll, bis es keine leeren Zellen mehr in einer Range gibt,
wobei die Zellen zufällig (also nicht zeilen- oder
spaltenweise) gefüllt werden.

Moin Jens,

was soll die Ergebniszelle sein bei z.B. folgendem Range, E9?

Tabellenblatt: [Mappe1]!1
 │ A │ B │ C │ D │ E │
──┼───┼───┼───┼───┼───┤
1 │ │ │ │ │ │
──┼───┼───┼───┼───┼───┤
2 │ x │ │ │ │ │
──┼───┼───┼───┼───┼───┤
3 │ x │ │ x │ │ x │
──┼───┼───┼───┼───┼───┤
4 │ x │ │ │ x │ │
──┼───┼───┼───┼───┼───┤
5 │ │ x │ │ x │ │
──┼───┼───┼───┼───┼───┤
6 │ │ │ x │ │ │
──┼───┼───┼───┼───┼───┤
7 │ x │ │ │ │ │
──┼───┼───┼───┼───┼───┤
8 │ x │ │ │ x │ │
──┼───┼───┼───┼───┼───┤
9 │ │ x │ │ │ │
──┴───┴───┴───┴───┴───┘
A1:E9
haben das Zahlenformat: Standard

Tabellendarstellung erreicht mit dem Code in FAQ:2363

Gruß
Reinhard

Grüezi Jens

Wie viele leere Zellen gibt es denn in deinem Bereich?

Ev. könntest Du mit .SpecialCells(xlCellTypeBlanks) nur die leeren Zellen des Bereiches abarbeiten?

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

DAS habe ich gesucht! Besten Dank!

naja, man sollte den bereich so lange bearbeiten, solange noch leere zellen exisiteren.

bearbeitung läuft einmal drüber und füllt z.b.B8, dann beim zweiten mal E4 usw. und soll eben gestoppt werdne, wenn alle zellen gefüllt sind.

wie beim sudoku :wink:

mit find("") geht es scheinbar doch. zumindest manchmal. ich habe noch nicht rausgefunden, woran das manchmal hängt, aber es muss zuverlässig sein!

Hallo Jens,

teste mal dieses:

Set Such = Range(„A1:I9“).Find(vbNullString, after:=Cells(9, 9) _
,SearchOrder:=xlByColumns, LookIn:=xlValues)

Gruß
Reinhard