Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1756to1760
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
Überspringen leerer Zeilen in List Box
06.05.2020 18:33:44
Sebastian
Hallo nochmal,
ich habe mir eine Eingabemaske mit einer ListBox erstellt. In dieser ListBox sollen alle Werte aufgeführt werden, die ungleich dem Wort "Bezeichnung" sind. Allerdings zeigt mir meine List Box nur die Werte bis zur ersten freien Zeile an. Ich habe aber noch keine Möglichkeit gefunden, wie ich die leeren Zeilen überspringen kann, dass sie sowohl nicht in meiner ListBox auftauchen, der Algorithmus aber drüber läuft. Zum besseren Verständnis habe ich den Code von meiner ListBox mit angehängt.
Vielen Dank schon mal :)
Gruß Sebi

Private Sub ListBox1_Click() 'Auflistung der Eingaben mit Befüllung der Textboxen
Dim Zeile As Long
'Wenn der Benutzer einen Namen anklickt, suchen wir
'diesen in der Tabelle1 heraus und tragen die Daten
'in die TextBoxen ein.
'Wir löschen standardmäßig alle bisherigen TextBoxen-Inhalte
TextBox2 = ""
TextBox4 = ""
TextBox6 = ""
TextBox8 = ""
TextBox13 = ""
'Nur wenn ein Eintrag selektiert/markiert ist
If ListBox1.ListIndex >= 0 Then
Zeile = 14 'Start in Zeile 14, Zeile 13 sind ja die Überschriften
'Schleife solange etwas in der dritten Spalte in Tabelle 2 drin steht
Do While Trim(CStr(Tabelle2.Cells(Zeile, 3).Value)) Bezeichnung
'Wenn wir den Namen aus der ListBox1 in der Tabelle2 Spalte 3
'gefunden haben, übertragen wir die anderen Spalteninhalte
'in die TextBoxen!
If ListBox1.Text = Trim(CStr(Tabelle2.Cells(Zeile, 3).Value)) Then
'TextBoxen füllen
TextBox4 = Trim(CStr(Tabelle2.Cells(Zeile, 3).Value))
TextBox2 = Tabelle2.Cells(Zeile, 2).Value
TextBox6 = Tabelle2.Cells(Zeile, 4).Value
TextBox8 = Tabelle2.Cells(Zeile, 5).Value
TextBox13 = Tabelle2.Cells(Zeile, 1).Value
Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
End If
Zeile = Zeile + 1 'Nächste Zeile bearbeiten
Loop
End If
End Sub

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Überspringen leerer Zeilen in List Box
06.05.2020 18:43:52
onur
Wenn du die Variable "Bezeichnung" schon benutzt, solltest du sie auch
1) Dimensionieren
2) mit einem Wert befüllen.
Wenn du "Zwangsdeklaration" aktiviert hättest, würdest du eine Fehlermeldung erhalten, und wüsstest, wo der Fehler liegt.
AW: Überspringen leerer Zeilen in List Box
06.05.2020 18:53:02
Sebastian
Bezeichnung ist ein Begriff, der in dieser Spalte steht, aber nicht mit angezeigt werden soll.
AW: Überspringen leerer Zeilen in List Box
06.05.2020 19:09:55
onur
Und woher soll das der Code wissen ?
AW: Überspringen leerer Zeilen in List Box
06.05.2020 21:31:49
Martin
Hallo Sebi,
eigentlich wollte ich dir helfen, aber ich komme mit der Aufgabenstellung bzw. dem Makro auch nicht klar. Die Variable "Bezeichnung" ist nicht deklariert und es ist auch nicht ersichtlich woher sie einen Wert bezieht. Bitte versuche auch die ungarische Notation anzuwenden und die Steuerelemente zu bezeichnen. Ich habe deinen Code mininal umgeschrieben, aber funktionell nicht verändert:
Private Sub ListBox1_Click() 'Auflistung der Eingaben mit Befüllung der Textboxen
Dim Zeile As Long
Dim i As Long
'Wenn der Benutzer einen Namen anklickt, suchen wir
'diesen in der Tabelle1 heraus und tragen die Daten
'in die TextBoxen ein.
'Wir löschen standardmäßig alle bisherigen TextBoxen-Inhalte
For i = 1 To 5
Controls("TextBox" & Choose(i, 2, 4, 6, 8, 13)) = ""
Next
'Nur wenn ein Eintrag selektiert/markiert ist
If ListBox1.ListIndex >= 0 Then
Zeile = 14 'Start in Zeile 14, Zeile 13 sind ja die Überschriften
'Schleife solange etwas in der dritten Spalte in Tabelle 2 drin steht
With Worksheets("Tabelle2")
Do While Trim(CStr(.Cells(Zeile, 3).Value))  Bezeichnung
'Wenn wir den Namen aus der ListBox1 in der Tabelle2 Spalte 3
'gefunden haben, übertragen wir die anderen Spalteninhalte
'in die TextBoxen!
If ListBox1.Text = Trim(CStr(.Cells(Zeile, 3).Value)) Then
'TextBoxen füllen
TextBox4 = Trim(CStr(.Cells(Zeile, 3).Value))
TextBox2 = .Cells(Zeile, 2).Value
TextBox6 = .Cells(Zeile, 4).Value
TextBox8 = .Cells(Zeile, 5).Value
TextBox13 = .Cells(Zeile, 1).Value
Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
End If
Zeile = Zeile + 1 'Nächste Zeile bearbeiten
Loop
End With
End If
End Sub
Viele Grüße
Martin
Anzeige
AW: Überspringen leerer Zeilen in List Box
06.05.2020 21:34:38
Sebastian
Bezeichnung soll keine Variable sein. Das ist ein Wert, der in der Tabelle steht. In der ListBox sollen lediglich die anderen Werte aufgelistet werden, egal wie viele leere Zeilen dazwischen sind.
AW: Überspringen leerer Zeilen in List Box
06.05.2020 21:39:36
Martin
Aber dann musst du Bezeichnung in Anführungszeichen setzen:
Do While Trim(CStr(.Cells(Zeile, 3).Value))  "Bezeichnung"
VG Martin
AW: Überspringen leerer Zeilen in List Box
06.05.2020 21:45:26
Sebastian
Mit den Anführungszeichen habe ich auch schon probiert gehabt, hatte aber auch nicht den gewünschten Effekt
AW: Überspringen leerer Zeilen in List Box
06.05.2020 21:54:10
Martin
Leider muss ich onur Recht geben. Ich verstehe nicht einmal das Ziel deines Makros und kann dir deshalb auch nicht wirklich weiterhelfen. Du müsstest schon die ganze Excelmappe hier hochladen und genau beschreiben was unter welchen Voraussetzungen mit VBA gelöst werden soll. Ich verstehe deinen Code einfach nicht, weil er einfach keinen Sinn ergibt bzw. nicht nachvollziehbar ist. Deshalb wird dir mit deinem Codeschnipsel allein auch niemand hier weiterhelfen können. Sorry, aber das ist wirklich nicht böse gemeint.
Anzeige
AW: Überspringen leerer Zeilen in List Box
06.05.2020 21:57:04
Sebastian
Ich kann gerne den gesamten Code morgen hochladen und auch Ausschnitte aus der Arbeitsmappe, damit man das besser sieht.
AW: Überspringen leerer Zeilen in List Box
06.05.2020 22:09:38
Martin
Ja gerne, mach das mal. Und schreibe dazu was genau passieren soll (unter Angabe eines Beispiels).
AW: Überspringen leerer Zeilen in List Box
06.05.2020 22:11:17
Sebastian
Werde das dann entsprechend markieren und das mit Beispielen hinterlegen.
Danke schon mal für eure Hilfe :)
AW: Überspringen leerer Zeilen in List Box
06.05.2020 22:31:56
Martin
Alles klar, bis morgen dann! ;-)
AW: Überspringen leerer Zeilen in List Box
06.05.2020 22:35:04
Sebastian
Alles klar, bis morgen :)
AW: Überspringen leerer Zeilen in List Box
07.05.2020 07:57:15
Sebastian
Hab jetz hier mal ein Bild meiner Arbeitsmappe hochgeladen. In der Feld "Vorhandene Einträge" sollen alle Einträge angezeigt werden, die sich in der Spalte C befinden. Allerdings sollen leere Zeilen übersprungen und der Begriff "Bezeichnung" ignoriert werden. Meine Frage ist jetzt, wie muss ich den Code der ListBox umschreiben, damit das geschieht.

VG Sebi
Anzeige
AW: Überspringen leerer Zeilen in List Box
07.05.2020 09:57:22
onur
Das Hauptproblem ist die Do While-Schleife. Genauso wie sie auch soll, BRICHT sie sofort ab, wenn die Bedingung
Trim(CStr(Tabelle2.Cells(Zeile, 3).Value))  "Bezeichnung"

NICHT erfüllt ist - also sobald eine "Bezeichnung" kommt.
Nimm besser eine For Next-Schleife.
AW: Überspringen leerer Zeilen in List Box
07.05.2020 12:19:04
Sebastian
Daran allein kann es aber nicht wirklich liegen. Wenn ich die leeren Zeilen rauslösche, zeigt mir die TextBox auch die Taschenlampe an
AW: Überspringen leerer Zeilen in List Box
07.05.2020 13:15:56
onur
Ich schrieb ja auch:
"Das Hauptproblem".
Der Rest deines Codes ist ja auch nicht besser.
AW: Überspringen leerer Zeilen in List Box
06.05.2020 21:39:45
onur
Nochmal für alle Anfänger:
Der Code hat nicht die geringste Ahnung von deiner Tsabelle, weder wie sie ausieht, noch was wo steht.
Erst wenn du dem Code befiehlst, sich Zellle soundso anzugucken und den Wert zu speichern, weiss der Code, was drin steht! Selbst dafür musst du ihm verraten, WELCHE Zelle er sich anschauen soll.
Bei Harry Potter würde es vielleicht klappen, aber nicht bei VBA.
Anzeige

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige