Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: Leere Zeilen finden und angeben

VBA: Leere Zeilen finden und angeben
20.07.2021 10:55:53
Jascha
Hallo zusammen,
es gibt im Forum schon einige Beiträge zu ähnlichen Themen, allerdings sind einerseits die Codes nicht genau das, was ich brauche und andererseits meine VBA-Kenntnisse zu dürftig um zu wissen, wie man den Code meinen Bedürfnissen entsprechend anpasst.
Ich habe eine Excel-Datei mit vielen Tabellenblättern. Das erste Tabellenblatt ist das "Cockpit" und dann geht's aufsteigend weiter mit "Tabelle1", "Tabelle2", etc.
In den Blättern "Tabelle1", etc. sind in der Range ("A1:E5") Daten hinterlegt. Die Spalte A ist immer mit Daten bestückt, es kann jedoch sein, dass die übrigen Spalten in einer Zeile leer sind - "B2:E2" leer.
Ich bräuchte einen Code, der mir im Tabellenblatt "Cockpit" die Namen aller Tabellenblätter anzeigt, in denen in der Range ("A1:E5") komplett leere (also "B2:E2" bspw.) Zeilen vorhanden sind. "Komplett leer" bedeutet in dem Fall, dass die Spalte A außen vor gelassen wird.
Hier hab' ich es versucht zu skizzieren - der Dateiupload hat leider nicht geklappt:
Tabelle1
A B C D E
1 "Daten" 2 3 4 5
2 "Daten"
3 "Daten" 2 3 4 5
4 "Daten" 2 3 4 5
5 "Daten" 2 3 4 5
Ziel: Gib mir im Tabellenblatt "Cockpit" an, dass im Tabellenblatt "Tabelle1" eine leere Zeile vorhanden ist (hier bspw. Zeile 2) und das für alle Tabellenblätter der Datei.
Aufgrund der dürftigen Skizzierung: "Daten" sind Zellinhalte A1 bis A5.
ohjee ich merke selbst, dass es schwierig zu verstehen ist. Ich hoffe jedoch echt auf eure Hilfe und Schwarmwissen!
Liebe Grüße und schonmal vielen Dank im Voraus!!

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Leere Zeilen finden und angeben
20.07.2021 11:21:46
GerdL
Moin,
als Einstieg:
=WENN(ANZAHLLEEREZELLEN(Tabelle1!$B$2:$E$5)=16;"Tabelle1";"")
Gruß Gerd
AW: VBA: Leere Zeilen finden und angeben
20.07.2021 12:49:31
Jascha
Danke Gerd, hat sich alles geklärt!
AW: VBA: Leere Zeilen finden und angeben
20.07.2021 11:37:36
UweD
Hallo
so?

Option Explicit
Sub Leer()
Dim Tb As Worksheet, TB1 As Worksheet
Dim LR As Integer, Z1 As Integer, Sp As Integer
Dim Rng As Range, AnzLeer As Integer, TText As String
Set TB1 = Sheets("Cockpit")
Z1 = 2 ' Erste Zielzeile / wegen Überschrift
Sp = 1 'Spalte =A
For Each Tb In ThisWorkbook.Sheets ' durchlaufe alle Blätter
Select Case Tb.Name
Case TB1.Name
'mache nichts wenn Blatt = Cockpit
Case Else
LR = Tb.Cells(Tb.Rows.Count, Sp).End(xlUp).Row 'letzte Zeile der Spalte
Set Rng = Tb.Cells(1, 2).Resize(LR, 4) ' Bereich B1:E?
AnzLeer = WorksheetFunction.CountBlank(Rng) 'Anzahl Leerzellen ermitteln
If AnzLeer  0 Then
TText = AnzLeer & " Leerzellen vorhanden"
Else
TText = "i.O."
End If
TB1.Cells(Z1, 1) = Tb.Name 'Blattname
TB1.Cells(Z1, 1).Offset(0, 1) = TText
Z1 = Z1 + 1
End Select
Next
End Sub
LG UweD
Anzeige
AW: VBA: Leere Zeilen finden und angeben
20.07.2021 12:10:04
Jascha
Moin Gerd,
moin Uwe,
vielen Dank schonmal für die flotte Rückmeldung!
Beides geht in die richtige Richtung, ist aber nicht ganz das, was ich brauche.
Bei der Range (B1:E4) bspw. gibt es Zeilen (zugegeben, das hätte ich dazuschreiben sollen), in denen in einer einzigen Zelle ein Wert steht.
Ich möchte jedoch nur die Tabellenblätter wissen, in denen komplette Zeilen der Range leer sind. Also es steht z.B. weder in B1,C1,D1 noch in E1 ein Wert. Die erste Zeile ist komplett leer.
Mich interessiert weniger, dass leere Zellen vorkommen. - wenn also in B1, C1,D1 nichts steht, dafür aber etwas in E1.
Der Code soll mir also angeben, in welchen Tabellenblättern Zeileninhalte vollständig fehlen, also von Spalte B bis E in Zeile 1,2,3,....
Eure Hilfe gibt Tabellenblätter aus, in denen leere Zellen und wie viele eben davon vorkommen.
Aber vielen vielen Dank schon mal, das ist mehr, als ich je zustande gebracht hätte!
LG Jascha
Anzeige
AW: VBA: Leere Zeilen finden und angeben
20.07.2021 12:23:28
UweD
Hi
dann so?

Option Explicit
Sub Leer()
Dim Tb As Worksheet, TB1 As Worksheet
Dim LR As Integer, Z1 As Integer, Sp As Integer, i As Integer
Dim Rng As Range, AnzLeer As Integer, TText As String
Set TB1 = Sheets("Cockpit")
Z1 = 2 ' Erste Zielzeile / wegen Überschrift
Sp = 1 'Zielspalte =A
For Each Tb In ThisWorkbook.Sheets ' durchlaufe alle Blätter
Select Case Tb.Name
Case TB1.Name
'mache nichts wenn Blatt = Cockpit
Case Else
LR = Tb.Cells(Tb.Rows.Count, Sp).End(xlUp).Row 'letzte Zeile der Spalte
TText = "i.O."
For i = 1 To LR
Set Rng = Tb.Cells(i, 2).Resize(1, 4)
AnzLeer = WorksheetFunction.CountBlank(Rng) 'Anzahl Leerzellen ermitteln
If AnzLeer  0 Then
TText = "Leerzellen vorhanden"
Exit For
End If
Next
TB1.Cells(Z1, 1) = Tb.Name 'Blattname
TB1.Cells(Z1, 1).Offset(0, 1) = TText
Z1 = Z1 + 1
End Select
Next
End Sub
LG UweD
Anzeige
Update..
20.07.2021 12:40:54
UweD
War ja noch nicht das Richtige.
so aber...

Option Explicit
Sub Leer()
Dim Tb As Worksheet, TB1 As Worksheet
Dim LR As Integer, Z1 As Integer, Sp As Integer, i As Integer
Dim Rng As Range, Anz As Integer, TText As String
Set TB1 = Sheets("Cockpit")
Z1 = 2 ' Erste Zielzeile / wegen Überschrift
Sp = 1 'Zielspalte =A
For Each Tb In ThisWorkbook.Sheets ' durchlaufe alle Blätter
Select Case Tb.Name
Case TB1.Name
'mache nichts wenn Blatt = Cockpit
Case Else
LR = Tb.Cells(Tb.Rows.Count, Sp).End(xlUp).Row 'letzte Zeile der Spalte
TText = "i.O."
For i = 1 To LR
Set Rng = Tb.Cells(i, 2).Resize(1, 4)
Anz = WorksheetFunction.CountA(Rng) 'Anzahl gefüllte Zellen ermitteln
If Anz = 0 Then
TText = "Leerzeilen vorhanden"
Exit For
End If
Next
TB1.Cells(Z1, 1) = Tb.Name 'Blattname
TB1.Cells(Z1, 1).Offset(0, 1) = TText
Z1 = Z1 + 1
End Select
Next
End Sub
LG UweD
Anzeige
AW: Update..
20.07.2021 12:43:30
Jascha
Uwe - Hero of the Day!!!
Mir ist es auch aufgefallen, dass ein Gleichheitszeichen besser passt, nachdem ich rumprobiert habe.
If AnzLeer = 0 Then
TText = "Leerzellen vorhanden"
Exit For
Vielen vielen Dank!!!
AW: VBA: Leere Zeilen finden und angeben
20.07.2021 13:18:02
Günther
Moin,
wenn ich das richtig interpretiere ist das mit deiner Version mit einigen Mausklicks (und einer Portion Lernen/Wissen) machbar. Stichwort Power Query.
Wobei sich mir (dank mangelnder Muster-xlsx) die Frage stellt, ob die Zellen wirklich leer sind, ob in B:E dann ausschließlich Zahlen enthalten sind, ob in allen Blättern die gleiche Anzahl von Spalten sind, …
 
Gruß
Günther  |  mein Excel-Blog
Anzeige

344 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige