Frage nach Excel-Makro

Hallo, Leute,

wie kann ich die Anzahl der Zeilen in einer Excel-Tabelle
ermitteln, die wirklich eingetragen sind.
ich brauche diese Anzahl, um jede Zeile durchzulaufen.
bis jetzt habe ich immer so gemacht:

Dim i As Integer
i = 1
Do While Range(„A“ & i).Value „“
'Do something…
i = i + 1
Loop

die finde ich aber blöd.
Z.B. wenn Range(„A“ & i) leer ist, dann wird meine While-Schrefe abgebrochen.
ich frage jetzt ob so was gibt:
for i = 1 to Anzahl_der_EingestragendeZeilen
’ tue was…
Next i

oder foreach Zeile_der_eingetragen_sind
'tue was

aber NICHT : for i = 1 to 66535 das ging auch, aber nicht besonders schlau.

Hi: UsedRange

Set Excelapp = New Excel.Application
Set ExcelWB = Excelapp.Workbooks.Open(„c:\datei.xls“")
Set ExcelWS = ExcelWB.Worksheets(1)

strRange = ExcelWS.UsedRange.Address

'Umrechnen in Zeilen:
’ Range auflösen z.B. $A$1:blush:K$2906
For lngI = Len(strRange) To 1 Step -1
If Mid(strRange, lngI, 1) = „$“ Then
lngZeilen = Val(Mid(strRange, lngI + 1))
Exit For
End If
Next lngI

'Wenn es mal schnell gehen soll:

'Einlesen aller Werte in ein Array
varMatrix = ExcelWS.Range(strRange)

For lngI = 1 To lngZeilen
… Machwas z.B.:
If varMatrix (lngI,1) = „Hallo“
varMatrix (lngI,1) = „Welt“
endif
Next lngI

'Änderungen speichern
ExcelWS.Range(strRange) = varMatrix

Vielleicht nicht besonders schlau aber ich denke wirksam könnte sein, zunächst einmal ein Makro aufzuzeichnen, das das gesamte Tabellenblatt nach z.B. der ersten Spalte absteigend sortiert (dabie sollte immer die Spalte ausgeählte werden, die die meisten Eintragungen hat).
Dabei werden alle (beschriebenen) Zellen an den Anfang der Tabelle gestellt.
Die unbeschriebenen Zellen landen am Ende des ausgewählten Bereiches. Somit ist auch sichergestellt, daß es zwischendrin keine leeren Zellen gibt. (Jedenfalls nicht in der Spalte, in der das Sortierkreiterium steht.
Dann können auch so Befehle wirken:
Cells(1,1).End(xlDown).Activate
REIHE=ActiveCell.Row
und/oder
Cells(1,1).End(xlToRight).Activate
SPALTE=ActiveCell.Column

Damit wären dann die außerste Zeile bzw. die äußerste Spalte festgelegt und könnten als Parameter in dem bereits bestehenden Modul eingebaut bzw. eingesetzt werden.

Nachteil: Eine über ein VBA-Modul vorgenommene Sortierung kann nicht wieder rückgängig gemacht werden.

Viel Erfolg.
Eneri

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