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

Forumthread: Listbox - Werte auslesen und übergeben

Listbox - Werte auslesen und übergeben
KLE
Hallo und guten Morgen,
...ich brauche Eure Hilfe, komme hier nicht weiter.
Ich habe eine Userform mit einer Listbox. In der wird eine Liste von Datensätze angezeigt (Nur eine Spalte!).
Nun möchte ich gern, dass wenn ein User auf einen der Einträge klickt - sich die Textboxfelder daneben mit den entsprechenden Feldern füllen.
Wichtig ! In der Listbox werden z.T. (je nach Filter) nur einige Datensätze der gesamten Datenbank angezeigt, daher funktioniert der .list.Index nicht wirklich....bringt mir immer falsche Ergebnisse.
Frage:
Wie kann ich den Text des markierten Datensatzes aus der Listbox auslesen - diesen würde ich dann per Suchfunktion in der Datentabelle suchen und dann darüber die Einträge alles anzeigen lassen.
Gruß und Danke !
Kay
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Listbox - Werte auslesen und übergeben
16.12.2010 08:34:00
Martin
Hallo Kay,
ehrlich gesagt verstehe ich dein Problem nicht ganz. Da ich deinen Code nicht kenne, kann ich den von dir geschilderten Fehler auch nicht nachvollziehen. Probiere einfach mal folgenden Code:
Private Sub ListBox1_Change()
TextBox1 = ListBox1.List(ListBox1.ListIndex)
End Sub
Private Sub UserForm_Initialize()
Dim i
For i = 1 To 100
ListBox1.AddItem "Eintrag " & i
Next
End Sub
Zur zweiten Frage:
Private Sub TextBox1_Change()
Dim Feld As Range
If TextBox1  "" Then
For Each Feld In ActiveSheet.UsedRange
If InStr(UCase(CStr(Feld.Value)), UCase(TextBox1)) > 0 Then
Feld.Activate
If MsgBox("Weitersuchen?", vbQuestion + vbYesNo, "Frage") = vbNo Then Exit For
End If
Next Feld
End If
End Sub
Was meinst du mit "[...] und dann darüber die Einträge alles anzeigen lassen." Sollen alle Zellen genannt werden, in denen der Suchbegriff gefunden wurde? Es macht ja nicht viel Sinn den gefundenen Suchbegriff 10mal aufzulisten, wenn dieser 10mal gefunden wurde. Wo soll diese Auflistung denn erfolgen?
Viele Grüße
Martin
Anzeige
AW: Listbox - Werte auslesen und übergeben
16.12.2010 09:42:49
KLE
Hallo Martin,
ich muss mir angewöhnen, den Code oder eine Musterdatei mit beizugfügen - sorry.
Vielen dank für Deine Unterstützung. Nun, der Fehler lag immer darin, dass wenn ich
in der Listbox einen Eintrag ausgewählt hatte - ich in den Textboxen daneben nicht
den passenden Datensatz angezeigt bekommen hatte.
Da ich bisher kaum mit Listboxen gearbeitet habe - wusste ich nicht genau woran es
lag. Aber Du hast mir mit Deinem Code eine gute Brücke gebaut - werde mich daran
machen und schauen, wie ich es für mich nutzen kann.
Ich finde die Funktion des "Gefunden - Weitersuchen" Klasse... kann ich gut in meinem
Tool verwenden! - Vielen Dank!
Gruß
Kay
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
Anzeige

Infobox / Tutorial

Werte aus einer Excel VBA Listbox auslesen und übergeben


Schritt-für-Schritt-Anleitung

  1. Userform erstellen: Erstelle eine neue Userform in deinem Excel VBA-Projekt und füge eine Listbox sowie Textboxen hinzu, in die die Daten ausgegeben werden sollen.

  2. Listbox initialisieren: Füge im UserForm_Initialize()-Ereignis Code hinzu, um die Listbox mit Werten zu füllen. Hier ein Beispiel:

    Private Sub UserForm_Initialize()
       Dim i As Integer
       For i = 1 To 100
           ListBox1.AddItem "Eintrag " & i
       Next i
    End Sub
  3. Werte aus der Listbox auslesen: Nutze das ListBox1_Change()-Ereignis, um den Wert des ausgewählten Eintrags auszulesen und in die entsprechenden Textboxen zu übertragen:

    Private Sub ListBox1_Change()
       TextBox1.Value = ListBox1.List(ListBox1.ListIndex)
    End Sub
  4. Daten suchen: Verwende eine Textbox, um nach einem bestimmten Eintrag in deiner Datentabelle zu suchen. Hier ist ein Beispiel für den Code:

    Private Sub TextBox1_Change()
       Dim Feld As Range
       If TextBox1.Text <> "" Then
           For Each Feld In ActiveSheet.UsedRange
               If InStr(UCase(CStr(Feld.Value)), UCase(TextBox1.Text)) > 0 Then
                   Feld.Activate
                   If MsgBox("Weitersuchen?", vbQuestion + vbYesNo, "Frage") = vbNo Then Exit For
               End If
           Next Feld
       End If
    End Sub

Häufige Fehler und Lösungen

  • Kein Wert wird angezeigt: Überprüfe, ob die Listbox tatsächlich Werte enthält und dass du die richtige Indexnummer verwendest. Der Index beginnt bei 0.

  • Falsche Daten in den Textboxen: Stelle sicher, dass du den korrekten ListIndex verwendest, um den Wert aus der Listbox auszulesen.


Alternative Methoden

Wenn du eine komplexere Logik benötigst, kannst du auch ein Dictionary-Objekt verwenden, um die Zuordnung zwischen Listbox-Einträgen und den Daten in den Textboxen zu verwalten. Diese Methode ermöglicht eine flexiblere Handhabung der Daten.


Praktische Beispiele

Hier ist ein einfaches Beispiel für die Verwendung einer Listbox, um Werte aus einer Datenbank auszulesen und anzuzeigen.

  1. Erstelle eine Excel-Tabelle mit einer Liste von Namen.
  2. Verwende die oben genannten Codes, um die Namen in die Listbox zu laden und suche nach dem Namen, wenn er in der Textbox eingegeben wird.

Tipps für Profis

  • Verwende Filter: Wenn du nur bestimmte Datensätze in der Listbox anzeigen möchtest, kannst du Filterfunktionen verwenden, um die relevanten Einträge dynamisch zu laden.

  • Optimierung der Suchfunktion: Du kannst die Suchfunktion verbessern, indem du eine Dropdown-Liste zur Auswahl der Suchkriterien verwendest.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Spalten in der Listbox anzeigen?
Du kannst die ColumnCount-Eigenschaft der Listbox verwenden, um mehrere Spalten anzuzeigen und die Werte in jeder Spalte entsprechend zu laden.

2. Was ist der Unterschied zwischen List und ListIndex?
List gibt den Wert des aktuellen Eintrags zurück, während ListIndex die Position des ausgewählten Eintrags in der Listbox angibt.

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