Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: erste leere Zelle A(n) der Spalte A finden

erste leere Zelle A(n) der Spalte A finden
19.01.2018 23:23:51
Schwipp
liebe Leute,
Ich möchte in einem Visual Basic Programm
die erste leere Zelle A(n) der Spalte A finden,
so nach der Methode:
Nr =1
Testen:
If not emptycell (A(n))
Nr=Nr + 1
Goto Testen
End If
MsgBox ("Nr")
Wie lautet der Code korrekt?
Gruß Schwipp
Anzeige

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: erste leere Zelle A(n) der Spalte A finden
19.01.2018 23:33:47
Werner
Hallo,
Visual Basic hat nichts mit Excel zu tun. Excel = VBA Visual Basic for Apllications
Die erste freie Zelle in einer Spalte ermittelt man am besten von unten nach oben:
Public Sub Erste_freie_Zelle()
Dim loLetzte As Long
With Worksheets("Tabelle1") 'Blattname anpassen
loLetzte = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).Row
MsgBox "Die erste freie Zeile ist  " & loLetzte
End With
End Sub
Gruß Werner
Anzeige
AW: erste leere Zelle A(n) der Spalte A finden
20.01.2018 11:03:06
Schwipp
Super Werner,
klappt prima!!!
Tabelle1 stimmte zufällig auch als Blattname.
Zusatzfrage: was hätte da stehen müssen, wenn es nur 1 Blatt in der Datei überhaupt gegeben hätte?
Gruß Schwipp
AW: erste leere Zelle A(n) der Spalte A finden
20.01.2018 11:12:13
Werner
Hallo,
dann so. Das bezieht sich dann aber auf das gerade aktive Blatt (wenn es mehrere Blätter gibt). Bei nur einem Blatt ist das dann ja kein Problem.
Public Sub Erste_freie_Zelle()
Dim loLetzte As Long
loLetzte = Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row
MsgBox "Die erste freie Zeile ist  " & loLetzte
End Sub
Beachte hierbei, dass vor dem Cells und vor dem Rows.Count dann keine Punkte sein dürfen.
Gruß Werner
Anzeige
Werners Code ist nicht ganz korrekt ...
20.01.2018 11:38:37
Matthias
Hallo
Zitat:
klappt prima!!!
Einspruch!
Du wolltest doch die erste freie Zelle, oder?
na dann füll mal komplett die Spalte(A) außer A2, was kommt dabei raus?
Zur Zusatzfrage:
Wenn Du nur ein Blatt hast, brauchst Du nicht unbedingt zu referenzieren,
ist aber generell immer sinnvoll! Es kann sich ja mal ändern.
Solltest Du also nur ein WorkSheet haben kannst Du das With-Konstrukt weglassen
und die Punkte vor Cells und Rows entfernen:
Mal nach Deinem Muster:
Option Explicit
Sub Schwipp()
Dim nR&
If Application.WorksheetFunction.CountBlank(Columns(1)) = 0 Then
MsgBox "keine leere Zelle gefunden": Exit Sub 'Spalte(1)
End If
nR = 1
Testen:
If Not IsEmpty(Cells(nR, 1)) Then
nR = nR + 1
GoTo Testen
End If
MsgBox "Nr: " & nR
End Sub


oder mit Do / Loop (also ohne GoTo)
Sub ML()
Dim FreeCell&
If Application.WorksheetFunction.CountBlank(Columns(1)) = 0 Then
MsgBox "keine leere Zelle gefunden": Exit Sub
End If
FreeCell = 1
Do While Cells(FreeCell, 1)  ""
FreeCell = FreeCell + 1
Loop
MsgBox "Die erste freie Zeile ist  " & FreeCell
End Sub
Gruß Matthias
Anzeige
AW: Zeilennummer der ersten freie Zelle in A
20.01.2018 12:59:44
Gerd
Hallo,
wenn man eine "vernünftige" Liste hast, geht auch:
MsgBox Cells(1, 1).CurrentRegion.Rows.Count + 1
MsgBox 1 + WorksheetFunction.CountA(Columns(1))

cu Gerd
was heißt das jetzt?
20.01.2018 16:39:36
Matthias
Hallo Gerd
Was heißt:
wenn man eine "vernünftige Liste" hat?
Der "TE" wollte die erste leere Zelle in Spalte("A")
Was hat das mit (D)einer "vernünftigen Liste" zu tun?

  • Und warum schreibst Du mir das?

Außerdem ist auch Dein Vorschlag nicht korrekt und liefert u.U. die falsche Zeile.
Gruß Matthias
Anzeige
AW: was heißt das jetzt?
20.01.2018 16:47:24
Gerd
Hallo Matthias,
nee. Wenn man eine Liste hat, die "rechteckig" von A1 aus gefüllt ist,
hat man u.U. eine "vernünftige" Liste.
Und für deine Forumseinstellungen bist nur du selbst verantwortlich. :-)
cu Gerd
aha, was hab ich denn eingestellt ... ?
20.01.2018 17:38:30
Matthias
Hallo Gerd
Ich finde das nicht so lustig wie Du :-(
Und für deine Forumseinstellungen bist nur du selbst verantwortlich
Ich habe überhaupt nichts eingestellt!
Ich habe an Schwipp eine Antwort gesendet
und auf meine Antwort an Schwipp antwortest Du mir, Warum?
Ich habe nichts gefragt.
Zitat:
Wenn man eine Liste hat, die "rechteckig" von A1 aus gefüllt ist, ...
Eine "rechteckig ausgefüllte Liste" - kopfschüttel
Das darfst Du mir gerne mal erklären.
Der "TE" hat Daten in Spalte("A") stehen
und will nun die erste freie Zelle in dieser Spalte ermitteln.
Gruß Matthias
Anzeige
AW: Erläuterungsversuch
20.01.2018 21:16:08
Gerd
Hallo Matthias,
ich habe dem Fragesteller (ohne Vorname) geantwortet.
Sonst hätte ich die Anrede wie jetzt hier genommen.
Dass neben dir weitere Leute auf Fragen reagieren, fällt dir offenbar nicht leicht
zu akzeptieren, ist aber dein Problem. :-)
Gruß Gerd
Das ist Unterstellung, kein Erläuterungsversuch
21.01.2018 08:24:31
Matthias
Hallo
Zitat:
Dass neben dir weitere Leute auf Fragen reagieren, fällt dir offenbar nicht leicht
zu akzeptieren

Das ist falsch! Ganz im Gegenteil.
Ich mag es nur nicht, wenn man auf meine Antwort eine weitere Antwort an mich richtet.
Das machst Du anscheinend ja öfter
Sieh mal hier:
https://www.herber.de/forum/messages/1603464.html
Du bekommst es einfach nicht hin Deine Beiträge dort zu platzieren
wo sie auch hingehören und das ist Dein Problem.
Der Beweis, an wen Du Deine Antwort gerichtet hast siehst Du im Bild
Ich habs mal für Dich mit Pfeilen markiert und unterstrichen.
Userbild
Gruß Matthias
Anzeige
Schlichtung
21.01.2018 08:34:42
lupo1
Hallo Matthias L,
allein schon die Worte: "... geht auch" ermöglichen einem Alternativ-Lösungsversuch die Platzierung
a) unter dem erstgenannten Lösungsversuch (hier also Deinem), weil sich darauf kommentierend bezogen wird
b) neben Deiner Lösung, so wie Du es willst.
Auch ich stehe regelmäßig vor der Wahl bei solchen Alternativen, entweder den Thread in die Tiefe oder in die Breite gehen zu lassen. Meistens nehme ich b), aber kommentiere ich dabei auch die erste Lösung, kommt auch a) vor.
Daher würde ich das nicht so streng sehen.
Anzeige
AW: Schlichtung
21.01.2018 10:09:03
Gerd
Danke Lupo1,
wer lesen will, ist klar im Vorteil. :-)
cu Gerd
oha, ein parteiischer "Schlichter" ...
21.01.2018 17:33:04
Matthias
Hallo Lupo
Wenn man schlichten will, muss man unparteiisch sein.
Das bist Du in Deinem Beitrag aber nicht.
Du sprichst nur mich an, nicht aber Gerd.
Du bist also Pateiisch und kein "Schlichter".
Ist ja klar das Gerd sich jetzt gestärkt fühlt.
Gerd sieht es ja nicht mal ein, wenn er das Bild sieht,
das er seinen Beitrag an mich gesendet hat.(und nur darum geht es - Korrektheit!)
Das ist blanker Stur-Sinn von ihm.
Und genauso ist es:(wie Gerd Dir schreibt) Wer lesen kann ist klar im Vorteil
Nur Gerd will nicht lesen.
Gruß Matthias
Anzeige
Asche auf mein Haupt
21.01.2018 18:09:56
lupo1
Es könnte sein, dass Du recht hast. Zur meiner Schande:
Ich habe Euren Thread genau nur einmal gelesen, und dabei bildete sich mein Text.
Vielleicht wäre der anders geworden, hätte ich es mehrfach getan.
Da Gerd aber vor allem aufgrund falscher Threadposition von Dir belastet wurde, wollte ich meine eigene Befindlichkeit darstellen, dass es manchmal gar nicht so einfach ist, die richtige Position zu finden. Oder: Es gibt sie gar nicht, wenn man denn nicht gleich an mehrfacher Stelle antworten will, was bei inhaltlichen Nicklichkeiten übertrieben wäre.
Anzeige
AW: Es heißt ..
21.01.2018 19:55:38
Gerd
Hallo Matthias!
... Antwort "auf", nicht Antwort "an".
Ich stelle jetzt wegen Resistenz meine Äußerungen zu diesem Thema ein. :-)
Einen schönen Abend noch!
Gerd
Dieser (Deiner) Beitrag ging an Lupo! ...
21.01.2018 21:32:51
Matthias
Hallo Gerd!
Warum schreibst Du dann:
Hallo Matthias, wenn Du den (diesen) Beitrag an Lupo sendest?

Willst Du nur provozieren?
Anscheinend "Ja"
... Antwort "auf", nicht Antwort "an".
Du suchst hier krampfhaft nach einer Rechtfertigung
Lass es einfach. Du weißt doch selbst da Du Unrecht hast.
Gruß Matthias
Anzeige
AW: Keinen Bock mehr! :-) o.T.
21.01.2018 22:01:17
Gerd
.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Erste leere Zelle in Spalte A finden mit VBA


Schritt-für-Schritt-Anleitung

Um die erste leere Zelle in der Spalte A mithilfe von Excel VBA zu finden, kannst du den folgenden Code verwenden. Dieser Code ermittelt die erste leere Zelle, indem er von unten nach oben in der Spalte sucht:

Public Sub Erste_freie_Zelle()
    Dim loLetzte As Long
    With Worksheets("Tabelle1") ' Blattname anpassen
        loLetzte = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).Row
        MsgBox "Die erste freie Zeile ist " & loLetzte
    End With
End Sub

Falls du nur ein Blatt in deiner Excel-Datei hast, kannst du den Code vereinfachen, indem du die With-Anweisung weglässt:

Public Sub Erste_freie_Zelle()
    Dim loLetzte As Long
    loLetzte = Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row
    MsgBox "Die erste freie Zeile ist " & loLetzte
End Sub

Häufige Fehler und Lösungen

  1. Fehler: "Typenübereinstimmung"

    • Lösung: Stelle sicher, dass die Variablen korrekt deklariert sind. Verwende Option Explicit, um sicherzustellen, dass alle Variablen deklariert werden.
  2. Fehler: Falscher Blattname

    • Lösung: Überprüfe den Blattnamen in der With-Anweisung und passe ihn gegebenenfalls an.
  3. Fehler: Keine leere Zelle gefunden

    • Lösung: Wenn die gesamte Spalte bereits ausgefüllt ist, wird keine leere Zelle gefunden. Verwende CountBlank, um zu überprüfen, ob es leere Zellen gibt:
If Application.WorksheetFunction.CountBlank(Columns(1)) = 0 Then
    MsgBox "Keine leere Zelle gefunden": Exit Sub
End If

Alternative Methoden

Es gibt verschiedene Ansätze, um die erste leere Zelle in einer Spalte zu finden:

  1. Mit einer Schleife:

    Sub ErsteLeereZelle()
       Dim nR As Long
       nR = 1
       Do While Not IsEmpty(Cells(nR, 1))
           nR = nR + 1
       Loop
       MsgBox "Die erste leere Zelle ist in Zeile " & nR
    End Sub
  2. Mit CurrentRegion: Wenn du sicher bist, dass deine Liste zusammenhängend ist:

    MsgBox Cells(1, 1).CurrentRegion.Rows.Count + 1

Praktische Beispiele

Hier sind einige praktische Anwendungsbeispiele für das Finden der ersten leeren Zelle:

  • Beispiel 1: Du hast eine Liste von Verkäufen in Spalte A und möchtest die nächste freie Zeile finden, um neue Verkäufe hinzuzufügen.

  • Beispiel 2: Du verwendest eine VBA-Routine, um Daten aus einer Datenbank in die nächste freie Zeile in Excel zu importieren.


Tipps für Profis

  • Verwende immer Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden und den Code leichter verständlich zu machen.
  • Kommentiere deinen Code regelmäßig, um die Lesbarkeit zu erhöhen, insbesondere wenn du komplexe Logik verwendest.
  • Nutze die integrierte Debugging-Funktion von VBA, um die Ausführung deines Codes Schritt für Schritt zu verfolgen.

FAQ: Häufige Fragen

1. Wie finde ich die letzte nicht leere Zelle in einer Spalte? Du kannst den folgenden Code verwenden:

Dim loLetzte As Long
loLetzte = Cells(Rows.Count, "A").End(xlUp).Row
MsgBox "Die letzte nicht leere Zelle ist in Zeile " & loLetzte

2. Was ist der Unterschied zwischen End(xlUp) und End(xlDown)? End(xlUp) sucht nach der letzten nicht leeren Zelle von unten nach oben, während End(xlDown) von oben nach unten sucht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige