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
Inhaltsverzeichnis

listbox auf selektierte werte prüfen

Forumthread: listbox auf selektierte werte prüfen

listbox auf selektierte werte prüfen
koenig.kl@arcor.de
hallo zusammen,
wie kann ich prüfen, ob in der listbox überhaupt ein eintrag selektiert ist?

Private Sub cmdWEITER_Click()
Dim Start As Long
Dim j As Integer
Call LetzteZeileErmitteln
Start = letzteZeile + 1
'Zielbiotop eintragen
With ActiveSheet
For j = 0 To lbxVerf.ListCount - 1
'nur Auslesen, wenn es sich um selektierte Verfahren handelt
If lbxVerf.Selected(j) = True Then
Cells(Start, Sp1) = lbxVerf.List(j)
Start = Start + 1
'            ElseIf lbxVerf.Selected(j) = False Then
'                MsgBox "Bitte mindestens ein Verfahren wählen!", 0, "Hinweis"
End If
Next j
End With
dlgWeitereVerfahrenAusDB.Hide
dlgWeitereVerfahrenMenge.Show
End Sub

freue mich auf eine antwort klaus
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Eigenschaft ListIndex
29.07.2010 09:16:56
IngGi
Hallo Klaus,
wenn kein Eintrag ausgewählt ist, ist der ListIndex der Listbox = -1.
Gruß Ingolf
AW: Eigenschaft ListIndex
29.07.2010 12:37:36
koenig.kl@arcor.de
hallo ingolf,
danke für den tipp. wenn ich die werte ohne listbox überwache bzw. diese mir in einer msgbox auslesen lasse, ist wird bei der listbox ohne selektion der wert 0 und nicht -1 angezeigt. passt das?
gruß klaus
Anzeige
0 = erster Eintrag ausgewählt !
29.07.2010 13:15:25
IngGi
Hallo Klaus,
wenn eine 0 angezeigt wird, dann ist der erste Eintrag in der Listbox ausgewählt. Die Zählung der Einträge beginnt bei 0, nicht bei 1. Solange kein Eintrag der Listbox ausgewählt ist, ist der Listindex -1. Das ist unabhängig davon, ob die Listbox gerade das aktive Element ist oder nicht.
Gruß Ingolf
Anzeige
AW: 0 = erster Eintrag ausgewählt !
29.07.2010 14:11:29
koenig.kl@arcor.de
hallo ingo,
die vba hilfe sagt dazu:
..... Für jede Zeile im Listenfeld hat Selected den Wert True, wenn die Zeile ausgewählt ist, und False, wenn die Zeile nicht ausgewählt ist. In einem Listenfeld-Steuerelement, das eine Mehrfachauswahl zulässt, gibt ListIndex den Index der Zeile zurück, die den Fokus hat, unabhängig davon, ob diese Zeile momentan ausgewählt ist
für mich heißt das multiselect ändern
danke klaus
Anzeige
AW: 0 = erster Eintrag ausgewählt !
29.07.2010 14:49:37
IngGi
Hallo Klaus,
du hast natürlich recht. Bei Multiselect-Listboxen ist das Ganze anders. Das hatte ich nicht beachtet. Dann bleibt dir nichts anderes übrig, als alle Einträge in einer Schleife abzuklappern und die Selected-Eigenschaft auf True oder False zu prüfen.
Gruß Ingolf
AW: 0 = erster Eintrag ausgewählt !
31.07.2010 11:38:05
klaus
hallo ingo,
ich habe jetzt einen zähler eingebaut. nach der for/nest-schleife muss er größer null sein, dann ist eine selektion da. nochmals danke für deine hilfe.
grüße klaus
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Listbox auf selektierte Werte prüfen


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob in einer Listbox in Excel VBA ein Eintrag selektiert ist, kannst du den ListIndex der Listbox verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne dein Excel-Dokument und gehe in den VBA-Editor (drücke ALT + F11).

  2. Füge ein UserForm hinzu, falls noch nicht vorhanden, und platziere eine Listbox (lbxVerf) sowie einen Button (cmdWEITER).

  3. Füge den folgenden VBA-Code in das Click-Ereignis des Buttons ein:

    Private Sub cmdWEITER_Click()
       Dim Start As Long
       Dim j As Integer
       Call LetzteZeileErmitteln
       Start = letzteZeile + 1
    
       With ActiveSheet
           If lbxVerf.ListIndex = -1 Then
               MsgBox "Bitte mindestens einen Eintrag auswählen!", vbExclamation, "Hinweis"
               Exit Sub
           End If
    
           For j = 0 To lbxVerf.ListCount - 1
               If lbxVerf.Selected(j) = True Then
                   Cells(Start, Sp1) = lbxVerf.List(j)
                   Start = Start + 1
               End If
           Next j
       End With
       dlgWeitereVerfahrenAusDB.Hide
       dlgWeitereVerfahrenMenge.Show
    End Sub
  4. Schließe den VBA-Editor und teste dein Formular.


Häufige Fehler und Lösungen

Hier sind einige häufige Fehler, die beim Arbeiten mit der Listbox auftreten können, und deren Lösungen:

  • Fehler: Kein Eintrag ausgewählt
    Lösung: Stelle sicher, dass du vor dem Auslesen der Werte den ListIndex überprüfst. Wenn dieser -1 ist, bedeutet das, dass kein Eintrag ausgewählt ist.

  • Fehler: 0 wird angezeigt, obwohl kein Eintrag ausgewählt ist
    Lösung: Achte darauf, dass du die Selected-Eigenschaft der Listbox korrekt verwendest. Bei einer Mehrfachauswahl kann der erste Eintrag die 0 anzeigen, während die Selected-Eigenschaft den Status des Eintrags angibt.


Alternative Methoden

Eine alternative Methode zur Überprüfung der selektierten Werte in einer Listbox könnte die Verwendung eines Zählers sein, wie von Benutzer Klaus vorgeschlagen. Hier ist ein Beispiel:

Dim selectedCount As Integer
selectedCount = 0

For j = 0 To lbxVerf.ListCount - 1
    If lbxVerf.Selected(j) Then
        selectedCount = selectedCount + 1
    End If
Next j

If selectedCount = 0 Then
    MsgBox "Bitte mindestens einen Eintrag auswählen!", vbExclamation, "Hinweis"
Else
    ' Weiterverarbeiten
End If

Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung von Listboxen in Excel:

  • Beispiel 1: Einfache Listbox mit Einzel- und Mehrfachauswahl.
  • Beispiel 2: Übertragung der selektierten Werte in eine Excel-Tabelle.
  • Beispiel 3: Dynamisches Füllen der Listbox aus einer Excel-Tabelle mit dem folgenden Code:

    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Tabelle1")
    Dim i As Integer
    
    For i = 1 To ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
       lbxVerf.AddItem ws.Cells(i, 1).Value
    Next i

Tipps für Profis

  • Nutze die If...Else-Anweisung, um die Benutzererfahrung zu verbessern, indem du klare Hinweise gibst, wenn keine Auswahl getroffen wurde.
  • Denke daran, die Listbox in einem benutzerfreundlichen Design zu gestalten, damit die Benutzer die Einträge leicht erkennen können.
  • Verwende die ListCount-Eigenschaft, um die Anzahl der Einträge dynamisch zu handhaben.

FAQ: Häufige Fragen

1. Wie kann ich die Listbox mit Werten aus einer Tabelle füllen?
Du kannst die Listbox mit einer Schleife füllen, indem du die Zellen in deiner Tabelle durchläufst und die Werte hinzufügst.

2. Was passiert, wenn ich die Mehrfachauswahl nicht benötige?
Wenn du die Mehrfachauswahl nicht benötigst, setze die MultiSelect-Eigenschaft der Listbox auf fmMultiSelectSingle. Dadurch wird nur eine Auswahl möglich sein.

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