Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Anzahl leere Zeilen zählen per VBA

Anzahl leere Zeilen zählen per VBA
14.11.2017 13:45:31
Reinhardt
Hallo,
ich habe folgende Aufgabe, die ich mit Formeln nicht gelöst bekomme:
In Spalte A sind 700 Zeilen mit einer Datumsangabe zu bearbeiten.
Nicht jede Zeile enthält ein Datum.
Ich brauche in Spalte B jeweils die Anzahl der freien Zeilen zum vorigen oder auch gerne zum nachfolgenden Datumseintrag.
Beispiel: A1 Datum, A2 leer, A3 leer = B1 soll 2 stehen oder
A1 Datum, A2 leer, A3 leer = B3 soll 2 stehen
Im Falle:
A1 Datum, A2 Datum, = B1 soll 0 stehen
Wer kann mir bitte einen Tipp geben?
Viele Grüße
Reinhardt
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anzahl leere Zeilen zählen per VBA
14.11.2017 18:24:19
Niclaus
Hallo Reinhardt
So zum Beispiel
Sub KeinDatum()
Columns("B:B").ClearContents
For i = 1 To 700
If IsEmpty(Cells(i, 1)) Then zaehler = zaehler + 1
If zaehler > 0 And Not IsEmpty(Cells(i + 1, 1)) Then Cells(i, 2) = zaehler
If Not IsEmpty(Cells(i + 1, 1)) Then zaehler = 0
Next i
End Sub
Grüsse Niclaus
Anzeige
Einfach Perfekt! Vielen,vielen Dank! o.T.
15.11.2017 07:19:32
Reinhardt
.
AW: Einfach Perfekt! Vielen,vielen Dank! o.T.
15.11.2017 10:17:46
Niclaus
Das freut mich. - Falls Du die andere Lösung auch gerne hättest - "die Anzahl der freien Zeilen zum vorigen Datumseintrag":
Sub KeinDatum2()
' Bezeichnung zum vorigen Datumseintrag
Columns("B:B").ClearContents
'Range("B1:B700") = 0
For i = 700 To 2 Step -1
' Achtung: to 2 nicht to 1 - A1 darf nie leer sein!
If IsEmpty(Cells(i, 1)) Then zaehler = zaehler + 1
If zaehler > 0 And Not IsEmpty(Cells(i - 1, 1)) Then
Cells(i - 1, 2) = zaehler
zaehler = 0
End If
Next i
End Sub
Grüsse Niclaus
Anzeige
;

Forumthreads zu verwandten Themen

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

Leere Zeilen in Excel per VBA zählen


Schritt-für-Schritt-Anleitung

Um die Anzahl der leeren Zeilen in Excel zu zählen, kannst Du VBA verwenden. Hier ist eine einfache Anleitung, wie Du dies umsetzen kannst:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code ein, um die Anzahl der leeren Zeilen nach einem Datumseintrag zu zählen:

    Sub KeinDatum()
        Columns("B:B").ClearContents
        Dim zaehler As Integer
        zaehler = 0
        For i = 1 To 700
            If IsEmpty(Cells(i, 1)) Then zaehler = zaehler + 1
            If zaehler > 0 And Not IsEmpty(Cells(i + 1, 1)) Then Cells(i, 2) = zaehler
            If Not IsEmpty(Cells(i + 1, 1)) Then zaehler = 0
        Next i
    End Sub
  4. Um die Anzahl der leeren Zeilen vor einem Datumseintrag zu zählen, verwende den folgenden Code:

    Sub KeinDatum2()
        Columns("B:B").ClearContents
        Dim zaehler As Integer
        zaehler = 0
        For i = 700 To 2 Step -1
            If IsEmpty(Cells(i, 1)) Then zaehler = zaehler + 1
            If zaehler > 0 And Not IsEmpty(Cells(i - 1, 1)) Then
                Cells(i - 1, 2) = zaehler
                zaehler = 0
            End If
        Next i
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus, indem Du auf Entwicklertools > Makros klickst und das gewünschte Makro auswählst.


Häufige Fehler und Lösungen

  • Fehler: "Das Makro kann nicht gefunden werden"

    • Überprüfe, ob das Makro im richtigen Modul gespeichert ist und dass Du es korrekt aufrufst.
  • Fehler: Keine Ausgabe in Spalte B

    • Stelle sicher, dass in Spalte A tatsächlich Daten vorhanden sind und dass Du die korrekten Zeilen in der Schleife durchläufst.
  • Fehler: Laufzeitfehler 9 (Index außerhalb des gültigen Bereichs)

    • Achte darauf, dass Du nicht über die Anzahl der Zeilen in Deinem Arbeitsblatt hinausgehst. Bei 700 Zeilen sollte For i = 1 To 700 verwendet werden.

Alternative Methoden

Wenn Du keine VBA verwenden möchtest, kannst Du auch die Funktion ZÄHLENWENN nutzen, um die Anzahl der leeren Zeilen in Excel zu zählen, jedoch ist dies weniger flexibel als die VBA-Methoden.

Beispiel:

=ZÄHLENWENN(A1:A700, "")

Diese Formel zählt die leeren Zellen in dem angegebenen Bereich, jedoch nicht die Anzahl der leeren Zeilen zwischen den Datumsangaben.


Praktische Beispiele

  • Beispiel 1: In Spalte A stehen einige Datumsangaben, und Du möchtest die Anzahl der leeren Zeilen zwischen den Datumsangaben in Spalte B zählen. Du kannst dafür das erste VBA-Skript verwenden.

  • Beispiel 2: Wenn Du die Anzahl der leeren Zeilen vor einem Datumseintrag zählen möchtest, nutze das zweite VBA-Skript. Dies ist besonders nützlich, wenn Du eine Übersicht über die Struktur Deiner Daten benötigst.


Tipps für Profis

  • Nutze Option Explicit am Anfang Deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.

  • Verwende Fehlerbehandlungsroutinen in Deinem VBA-Code, um unerwartete Fehler abzufangen.

  • Experimentiere mit Schleifen und Bedingungen, um Deine VBA-Skripte anzupassen und zu optimieren.


FAQ: Häufige Fragen

1. Wie kann ich das Makro auf eine andere Anzahl von Zeilen anpassen? Du musst die Werte in den Schleifen For i = 1 To 700 und For i = 700 To 2 Step -1 entsprechend ändern, um die gewünschte Anzahl von Zeilen zu berücksichtigen.

2. Kann ich das Makro für andere Spalten verwenden? Ja, Du kannst die Spaltenreferenzen in den Codes anpassen, um andere Spalten zu berücksichtigen. Beispielsweise ändere Cells(i, 1) in Cells(i, 2), wenn Du mit Spalte B arbeiten möchtest.

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