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

UF Listbox Eintrag markieren

Forumthread: UF Listbox Eintrag markieren

UF Listbox Eintrag markieren
23.06.2014 12:24:39
Mister B

Hallo an Alle,
ich habe mal wieder ein Problem. In einer UF mit einer mehrspaltigen ListBox möchte ich den Eintrag markieren der mit dem Inhalt der Zelle Tabelle1.Range"D47" übereinstimmt. In der ListBox befindet sich der Eintrag in Spalte 3.
Vielen Dank und liebe Grüße
Martin

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UF Listbox Eintrag markieren
23.06.2014 12:39:59
Daniel
Hi
dim i as long
for i = Listbox1.ListIndex - 1 to 0 Step - 1
If Listbox1.List(i, 2) = Tabelle1.Range("D47").Value Then Exit For
Next
Listbox1.ListIndex = i
bei der Spaltennummer in der .List-Funktion musst du nochmal prüfen wie du das jetzt genau gemeint hast.
In der Listbox beginnt die Indexzählung bei 0, dh die erste Spalte hat den Index 0.
Gruß Daniel

Anzeige
AW: UF Listbox Eintrag markieren
24.06.2014 08:06:08
Mister B
Hallo Daniel,
ich kam erst jetzt zum Testen und bei deinem Code erhält ich die Fehlermeldung in der letzten Zeile, dass die Eigenschaft nicht gesetzt werden kann. Nach langem Suchen in z.T. englischen Foren habe ich folg. Code gefunden der funktionert:
Dim lngCount As Long
Dim lngCounter AS Long
lngCount = Me.NameDeinListenfeld.ListCount
For lngCounter = 1 To lngCount
If Me.NameDeinListenfeld.column(1, lngCounter - 1) = "Deine StrBegriff" Then
Me.NameDeinListenfeld.Selected(lngCounter - 1) = True
Else
Me.NameDeinListenfeld.Selected(lngCounter - 1) = False
End If
Next lngCounter
Vielen Dank für deine Mühe.
Gruß
Martin

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

Infobox / Tutorial

Eintrag in einer UserForm ListBox markieren


Schritt-für-Schritt-Anleitung

  1. Öffne Deine Excel-Datei und gehe zum Visual Basic for Applications (VBA) Editor. Dies kannst Du mit ALT + F11 tun.

  2. Erstelle eine UserForm und füge eine ListBox hinzu. Benenne die ListBox, zum Beispiel NameDeinListenfeld.

  3. Füge den folgenden Code in das Codefenster der UserForm ein:

    Dim lngCount As Long
    Dim lngCounter As Long
    lngCount = Me.NameDeinListenfeld.ListCount
    For lngCounter = 1 To lngCount
       If Me.NameDeinListenfeld.Column(1, lngCounter - 1) = Tabelle1.Range("D47").Value Then
           Me.NameDeinListenfeld.Selected(lngCounter - 1) = True
       Else
           Me.NameDeinListenfeld.Selected(lngCounter - 1) = False
       End If
    Next lngCounter
  4. Stelle sicher, dass der Inhalt in Tabelle1.Range("D47") den Wert hat, den Du in der ListBox suchen möchtest.

  5. Starte die UserForm, um den Eintrag auszuwählen. Der Code wird den entsprechenden Eintrag markieren.


Häufige Fehler und Lösungen

  • Fehlermeldung: "Eigenschaft kann nicht gesetzt werden"
    Dies passiert oft, wenn der ListIndex nicht korrekt gesetzt ist. Überprüfe, ob die ListBox tatsächlich Einträge hat und ob Du die richtige Spalte angesprochen hast.

  • Falscher Spaltenindex
    In VBA beginnt die Indexzählung bei 0. Falls Du in der ListBox die dritte Spalte adressieren möchtest, solltest Du den Index 2 verwenden.


Alternative Methoden

Wenn Du den Eintrag in der ListBox basierend auf einem anderen Kriterium oder aus einer anderen Quelle auswählen möchtest, kannst Du die Find-Methode verwenden. Hier ein Beispiel:

Dim foundIndex As Long
foundIndex = Application.Match(Tabelle1.Range("D47").Value, Me.NameDeinListenfeld.List, 0)
If Not IsError(foundIndex) Then
    Me.NameDeinListenfeld.ListIndex = foundIndex - 1
End If

Diese Methode ist effizient, wenn Du große Datenmengen hast und schnell nach einem bestimmten Eintrag suchen möchtest.


Praktische Beispiele

  1. Beispiel für eine einfache UserForm:
    Erstelle eine UserForm mit einer ListBox, die Namen von Mitarbeitern enthält. Markiere den Namen, der in Zelle D47 steht, um ihn hervorzuheben.

  2. Anwendungsbeispiel:
    Verwende die Markierung in einer ListBox, um den Benutzer über relevante Informationen zu informieren, die aus einer Datenquelle abgerufen werden.


Tipps für Profis

  • Verwende Option Explicit am Anfang Deiner Module. Dies hilft, Fehler durch nicht deklarierte Variablen zu vermeiden.

  • Optimierung der Leistung: Wenn Du sehr viele Einträge in der ListBox hast, kann es sinnvoll sein, die ListBox vor der Schleife zu deaktivieren, um die Leistung zu verbessern:

    Me.NameDeinListenfeld.Enabled = False
    ' Dein Code hier
    Me.NameDeinListenfeld.Enabled = True
  • Fehlerbehandlung einbauen: Verwende On Error Resume Next, um deine Anwendung robuster zu machen.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Einträge in der ListBox auswählen?
Du kannst die MultiSelect-Eigenschaft der ListBox aktivieren und dann den Code entsprechend anpassen, um mehrere Einträge auszuwählen.

2. Was mache ich, wenn die ListBox leer ist?
Überprüfe, ob die ListBox korrekt mit Daten gefüllt wird, bevor Du versuchst, einen Eintrag auszuwählen. Du könntest eine einfache Bedingung einbauen, um sicherzustellen, dass die ListBox nicht leer ist, bevor der Code ausgeführt wird.

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