Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
964to968
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
964to968
964to968
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Leere Felder finden

Leere Felder finden
04.04.2008 16:14:32
Alex
Hallo Leute,
kleines Problem. Habe ein ExcelSheet mit sehr vielen Einträgen (300 Zeilen, ca. 80 Spalten).
In Spalte B steht jeweils der Name der Person.
Nun möchte ich in mein bestehendes Makro eine kleine Suchfunktion einbauen, die mir nach leeren
Spalten sucht. Nach der Suche soll er mir alle Namen der Spalte B (am besten in eine Listbox) ausgeben,
die noch leer Spalten enthalten. Wie mache ich das am einfachsten?
Alex

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leere Felder finden
04.04.2008 17:09:00
Peter
Hallo Alex,
sollen ALLE anderen Spalten leer sein, also 1 und 3 - 80 oder genügt es,wenn bereits eine der Spalten in dem Bereich 1, 3 - 80 leer ist?
Gruß Peter

AW: Leere Felder finden
04.04.2008 17:26:00
Peter
Hallo Alex,
hier einmal ein Ansatz für die Zeile 1 bis 10, Spalte 3 = C bis 80 = CB:

Public Sub LeereZellen()
Dim WkSh    As Worksheet
Dim lZeile  As Long
Set WkSh = Worksheets("Tabelle1") ' 


Wo soll denn deine ListBox erscheinen? Tabellenblatt oder UserForm?
Gruß Peter

AW: Leere Felder finden
06.04.2008 18:40:00
Alex
Hi,
also sobald er irgendeine leere Zelle findet soll er mir den zugehörigen Namen ausgeben.
Sprich sobald z.B. in Zeile 3 auch nur ein einziges Leeres Feld ist (von Spalte 3 - 80 also C-CG)
soll er den entsprechenden Namen (der in Spalte B steht) zur Listbox hinzufügen.
Die Listbox soll in einer Userform sein. Sprich ich hab einen Button, der diese Funktion starten soll.
Allerdings soll er mir den Namen natürlich nur ein einziges mal in die Listbox addieren und nicht öfter!
Alex

Anzeige
AW: Leere Felder finden
04.04.2008 19:43:52
Daniel
Hi
sicherlich gibts noch ne elegantere Variante, aber so geths auf jeden Fall.

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Zelle As Range
Dim i As Long
ListBox1.Clear
Set Zelle = ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks)
If Zelle Is Nothing Then Exit Sub
For Each Zelle In ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks)
If Zelle.Column > 2 Then
For i = 0 To ListBox1.ListCount - 1
If ListBox1.List(i) = Cells(Zelle.Row, 2).Value Then Exit For
Next
If i = ListBox1.ListCount Then ListBox1.AddItem Cells(Zelle.Row, 2).Value
End If
Next
End Sub


Gruß, Daniel

Anzeige
AW: Leere Felder finden
05.04.2008 09:57:00
Alex
Hallo Leute,
ich werds morgen mal checken ob das alles so funzt! Danke für eure Antworten.
Ich meld mich dann noch mal :-))
Alex

AW: Leere Felder finden
06.04.2008 16:18:00
Alex
Hi Daniel,
hab das ganze jetzt mal getestet. Prinzipiell funktioniert es, allerdings trägt er mir die Name öfter als 1 mal in de ListBox ein? Wieso? Er trägt die Namen immer drei mal hintereinander in die ListBox1 ein!
Hier mein Code, hab ihn angepasst auf mein Sheet!
Ich hab noch einen Zähler mit eingebaut, der mir nun eine Zahl >2000 ausgibt. Das kann aber nicht sein, da die Liste momentan nur 280 Namen enthält!

Private Sub CommandButton6_Click()
' Das Sub sucht leer Zellen und gibt die passenden Namen aus!
Dim Zelle As Range
Dim i As Long
LeereFelder.ListBox1.Clear
Set Zelle = ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks)
If Zelle Is Nothing Then Exit Sub
For Each Zelle In ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks)
If Zelle.Column > 2 Then
For i = 0 To LeereFelder.ListBox1.ListCount - 1
If LeereFelder.ListBox1.List(i) = Cells(Zelle.Row, 2).Value Then Exit For
Next
If i = LeereFelder.ListBox1.ListCount Then LeereFelder.ListBox1.AddItem Cells(Zelle.Row, _
_
2).Value
End If
Next
LeereFelder.Label3.Caption = LeereFelder.ListBox1.ListCount
LeereFelder.Show
End Sub


Anzeige
AW: Leere Felder finden
06.04.2008 16:21:00
Alex
vergessen die frage auf noch offen zu stellen....

AW: Leere Felder finden
06.04.2008 21:18:53
Daniel
Hi
leider kann ich deinen Fehler nicht nachvollziehen, lad doch mal ne Beispieldatei hoch.
in deinem Zähler zählst du alle leeren Zellen, dh. der Zählerwert kann wesentlich höher liegen, als die Anzahl der Namen (im Extremfall ist der Zählerwert = Zeilenzahl x Spaltenzahl der Tabelle)
Gruß, Daniel

AW: Leere Felder finden
07.04.2008 16:46:15
Alex
Hi,
das Problem ist nicht der Zähler. Der zählt richtig, er zählt die Einträge in der Listbox
Das Problem ist, das er bei jeder leeren gefundenen Zelle 1x den Namen addiert.
Sprich wenn er in der Zeile 5 leere Zellen findet, schreibt er mir auch den Namen 5x in die ListBox
Ich möchte aber den Namen nur 1x in der ListBox stehen haben!
Alex

Anzeige
AW: Leere Felder finden
07.04.2008 20:28:00
Daniel
Hi
wenn du nicht in der Lage bist, eine Beispieldatei hochzuladen, kann ich deinen Fehler auch nicht korrigieren.
mein Code funktioniert, guckst du hier: https://www.herber.de/bbs/user/51330.xls
diese Schleife prüft ab, ob der Name schon in der Liste vorhanden ist oder nicht:

For i = 0 To ListBox1.ListCount - 1
If ListBox1.List(i) = Cells(Zelle.Row, 2).Value Then Exit For
Next
If i = ListBox1.ListCount Then ListBox1.AddItem Cells(Zelle.Row, 2).Value


die Schleife bricht ab, wenn der Inhalt der aktuellen Zelle in der Listbox gefunden wird.
nur wenn der Name nicht gefunden und die Schleife vollständig durchlaufen wird (i ist grösser als der Schleifenendwert), wird auch der Name in die Liste eingetragen.
Gruß. Daniel

Anzeige
AW: Leere Felder finden
07.04.2008 20:49:09
Alex
Hi,
danke für die Antwort, habe den Fehler jetzt gefunden...... *schäm*
Das Problem ist, das ich nicht nach "Namen" sondern nach Zahlen suche.
Sprich in die ListBox werden Zahlen (z.B. 63456) hinzugefügt.
Das Makro funkioniert so nur mit Buchstaben.
Kannst Du mir sagen, was ich ändern muss, damit das auch mit Zahlen funktioniert?
Alex

AW: Leere Felder finden
07.04.2008 21:23:23
Daniel
Hi
von Zahlen war nie die Rede, nur von Namen.
eine aussagekräftige Beispieldatei von dir hätte hier helfen können.
ich hab jetzt keine Lust, nochmal selber was zusammen zu basteln, daß dann doch nicht für deine Daten passt.
aber mal so als Tip:
in der Listbox stehen normalerweise nur Strings, keine Zahlen.
auch wenn die Strings nur aus Ziffern bestehen, bleiben es Strings und werden nicht wie in den Zellen in Zahlen umgewandelt
Da du jetzt Zahl (Zellwert) mit String (Listboxeintrag) vergleichst, kann es keine Übereinstimmung geben.
D.h. du musst entweder:
- mit der CINT()-Funktion die Strings in Zahlen umwandeln
oder
- mit der CSTR()-Funktion die Zahlen in Strings umwandeln
oder
- anstellen von Cells(Zelle.row,2).value das hier verwenden: Cells(zelle.row,2).TEXT. dann wird der Zellwert auch immer als String zurückgegeben.
Gruß, Daniel

Anzeige
AW: Leere Felder finden
07.04.2008 21:52:35
Alex
Hallo Daniel,
vielen Dank für Deine Geduld. So funktionierts jetzt! Danke!!!
Alex

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige