Wie ermittle ich in Excel die erste leere Zelle?

5 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Ich würde sagen:

Debug.Print Range("A:A").SpecialCells(xlCellTypeBlanks).Row

Das Debug.Print kannst Du natürlich durch Deine Variable ersetzen.
Hilft Dir das?

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)

PauleVBA 
Beitragsersteller
 15.01.2012, 19:38

Danke Dir, in einer Zeile, wofür ich bisher 7 Zeilen benötigte.

Und der Vorteil (gegenüber den anderen Antworten) ist, dass hier richtig die Zeile 9 ausgegeben wird und auch bei der leeren 1. Zeile kein Fehler auftritt

0
Oubyi, UserMod Light  16.01.2012, 18:19
@PauleVBA

Freut mich, dass es klappt. ☼
Über das Problem mit der 1. Zeile war ich auch "gestolpert".
Danke fürs ☆

0

Versuchs mal, damit wird die erste frei Zelle in A angesprungen.Vorausetzung es beginnt bei A1

Sub ErsteFreieZelleInSpalteA()

Dim s As String

Dim i As Long

With ActiveSheet

i = 0
Do
    i = i + 1
    s = Cells(i, "A")
    If Len(s) = 0 Then
        Cells(i, "A").Activate
        Exit Do
    End If
Loop While i < 65535

End With

End Sub

Mit Excel 2002 geht es.

Gruß Monkee

Sub erstefreieZinA()
Dim Zeil
[A1].End(xlDown).Offset(1, 0).Select
Zeil = Selection.Row
Debug.Print Zeil
End Sub

ich bin sicher, dass bisher auch
[A1].End(xlDown).Offset(1, 0).row
und auch .Address direkt (ohne .select) gegangen ist, vielleicht gehts in 2010 wieder.
In 2007 meldet mir das "unzulässige Verwendung einer Eigenschaft"

Besser und sicherer ist es, von unten zu kommen. Ansonsten gibt es Probleme, wenn zwischendurch eine Zelle leer ist. Ich nutze immer:

[A65536].End(xlUp).Offset(1,0).Row

Gruß Hannes


Oubyi, UserMod Light  15.01.2012, 15:31

DAS nutze ich auch immer (etwas erweitert), aber damit findest Du die LETZTE belegte Zelle (Offset(1,0)), also die erste leere nach der letzten belegten Zelle.
PauleVBA sucht aber die ERSTE leere Zelle.
Zitat:
"A geht bis Zeile 9 hat dann eine Leerzeile und dann von 11 weiter bis 23"
"...die erste leere Zelle in A ermitteln, also im Beispiel die Zeile 10 "
Dein Code würde aber Zeile 24 ausgeben.

0

Ich weiß nicht, wie man einen Kommentar kommentiert. Vielleicht ist die Zuordnung jetzt nicht richtig. @Oubyi: Meine Formel funktioniert. Durch das Offset(1,0) wird die erste leere Zelle gefunden. Probier's mal.

Hannes


Oubyi, UserMod Light  15.01.2012, 20:06

Ich habe es ausprobiert.
Wie beschrieben findet Dein Code die Zeile 24, obwohl Zeile 10 die erste freie Zeile ist.
Aus Deiner Bemerkung:
"Ansonsten gibt es Probleme, wenn zwischendurch eine Zelle leer ist."
sehe ich, dass Du den Fragesteller vielleicht nicht richtig verstanden hast.
In 99% der Fälle sucht man praktisch nach dem Ende der Tabelle, und da nutze auch ich etwas Ähnliches.
Aber PaulVBA will ja eben DIESE freie Zelle dazwischen finden.

0