Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Listbox erster Eintrag

Listbox erster Eintrag
10.02.2007 14:16:11
Volker
Hallo zusammen,
Ich habe (mit Eurer Hilfe) den untenstehenden Code "gebastelt".
Zu meiner Freude funktioniert er auch.
Der Code spricht eine Userform an, in welcher sich eine Listbox befindet.
Die Listbox ist nach dem Wert von Textbox2 gefiltert. Die gefundenen Werte werden in der Listbox1 angezeigt.
Nun die Frage:
Wie kann ich erreichen das der erste Wert der Listbox1 selektiert wird,so
als ob man mit der Maus daraufklickt?
Hierdurch sollen die restlichen Spalten der Listbox in die Textboxen übernommen werden.
In der langen Recherche zum Thema Listbox habe ich nichts passendes gefunden, oder überlesen.
Hier der Code:

Sub prüfen()
Sheets("Materialübersicht").Activate
For i = 2 To 7
If Cells(i, 11) <= 3 And Cells(i, 12) = 0 Then
Msg = "Medikament:" & Chr(10) & Chr(10) & (Sheets("Materialübersicht").Cells(i, 13)) & Chr(10) & Chr(10) & "Bestand nähert sich dem Ende!" & Chr(10) & "Soll bestellt werden?"
Ans = MsgBox(Msg, vbQuestion + vbYesNo, "Achtung !")
End If
Select Case Ans
Case vbYes
Sheets("Material").Activate
UserForm3.Show
UserForm3.ListBox1.SetFocus
UserForm3.TextBox2 = (Sheets("Materialübersicht").Cells(i, 13))
UserForm3.CommandButton1 = True
UserForm3.TextBox1 = ""
Exit Sub
Case vbNo
Sheets("Materialübersicht").Activate
End Select
Next i
End Sub

Danke
Gruß
Volker
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox erster Eintrag
10.02.2007 15:17:59
Beni
Hallo Volker,
Gruss Beni
ListBox1.ListIndex = 0
AW: Listbox erster Eintrag
10.02.2007 15:47:15
Volker
Hallo Beni,
Danke für Deine Hilfe.
Mit dieser Anweisung habe ich es auch schon Versucht. Der erste Eintrag in der Listbox wird tatsächlich hinterlegt, aber nicht in die Textboxen übernommen. Ich muß trotzdem mit der Maus darauf, dann ist der erste Eintrag in den Textboxen.
Noch eine Idee?
Dnke Gruß
Volker
Anzeige
AW: Listbox erster Eintrag
11.02.2007 15:23:11
Beni
Hallo Volker,
wenn die Textboxen nicht mit Namen fortlaufend nummeriert sind, dann
Name = ListBox1.List(ListBox1.ListIndex, 0)
Vorname = ListBox1.List(ListBox1.ListIndex, 1)
---------------------------------------------------------
wenn die Textboxen z.B. TextBox1, TextBox2, TextBox3, usw heissen, dann

Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)
Dim Ob As Object
tbanz = 0
For Each Ob In Me.Controls
If TypeName(Ob) = "TextBox" Then tbanz = tbanz + 1
Next Ob
ListBox1.SetFocus
For tb = 1 To tbanz
Controls("TextBox" & CStr(tb)).Value = ListBox1.List(ListBox1.ListIndex, tb - 1)
Next tb
End Sub

-------------------------------------------
ich habe dir ein Beispiel angefügt.
Gruss Beni
https://www.herber.de/bbs/user/40330.xls
Anzeige
AW: Listbox erster Eintrag
11.02.2007 23:49:04
Volker
Hallo Beni,
sorry für die später Reaktion ( bin gerage erst wieder nach Hause gekommen )
Danke für Deine Lösung ich glaube ich komme jetzt weiter.
Nochmals vielen dank
Gruß Volker
;

Forumthreads zu verwandten Themen

Anzeige
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

Listbox erster Eintrag in Excel VBA


Schritt-für-Schritt-Anleitung

  1. UserForm erstellen: Öffne den VBA-Editor in Excel (Alt + F11) und füge eine neue UserForm hinzu.

  2. ListBox und TextBoxen hinzufügen: Ziehe eine ListBox (ListBox1) und die benötigten TextBoxen (z.B. TextBox1, TextBox2) auf die UserForm.

  3. VBA-Code einfügen: Füge den folgenden Code in das Codefenster der UserForm ein:

    Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)
       Dim Ob As Object
       Dim tbanz As Integer
       tbanz = 0
       For Each Ob In Me.Controls
           If TypeName(Ob) = "TextBox" Then tbanz = tbanz + 1
       Next Ob
       ListBox1.SetFocus
       For tb = 1 To tbanz
           Controls("TextBox" & CStr(tb)).Value = ListBox1.List(ListBox1.ListIndex, tb - 1)
       Next tb
    End Sub
  4. Ersten Eintrag auswählen: Um den ersten Eintrag der ListBox automatisch auszuwählen, füge nach dem Laden der UserForm diesen Code hinzu:

    Private Sub UserForm_Initialize()
       ListBox1.ListIndex = 0
    End Sub
  5. Testen: Starte die UserForm und überprüfe, ob der erste Eintrag in der ListBox automatisch in die TextBoxen übernommen wird.


Häufige Fehler und Lösungen

  • Problem: Der erste Eintrag wird nicht in die TextBoxen übernommen.

    • Lösung: Stelle sicher, dass die TextBoxen korrekt benannt sind (z.B. TextBox1, TextBox2). Der Code funktioniert nur, wenn die Namen der TextBoxen den Erwartungen entsprechen.
  • Problem: ListBox wird nicht gefüllt.

    • Lösung: Überprüfe, ob die Datenquelle korrekt ist und die ListBox mit Werten gefüllt wird, bevor die UserForm angezeigt wird.

Alternative Methoden

Wenn du eine andere Möglichkeit suchst, um die Auswahl in der ListBox zu verarbeiten, kannst du auch die ListBox1_Click-Ereignisprozedur verwenden:

Private Sub ListBox1_Click()
    TextBox1.Value = ListBox1.List(ListBox1.ListIndex, 0)
    TextBox2.Value = ListBox1.List(ListBox1.ListIndex, 1)
End Sub

Diese Methode wird ausgeführt, wenn ein Benutzer einen Eintrag in der ListBox auswählt.


Praktische Beispiele

Nehmen wir an, deine ListBox enthält die folgenden Daten:

Name Vorname
Müller Max
Schmidt Anna
Schneider Lukas

Wenn du den oben genannten Code verwendest, wird beim Start der UserForm der Name "Müller" und der Vorname "Max" automatisch in die TextBoxen übernommen, ohne dass ein Mausklick erforderlich ist.


Tipps für Profis

  • Datenbindung: Du kannst die ListBox auch an ein Datenblatt binden, um die Handhabung von großen Datenmengen zu optimieren.
  • Erweiterte Filter: Verwende erweiterte Filtermethoden, um die Daten in der ListBox dynamisch basierend auf Benutzereingaben zu aktualisieren.
  • Benutzerfreundlichkeit: Überlege, die ListBox mit zusätzlichen Funktionen wie Suchfeldern oder Dropdown-Listen zu erweitern, um die Benutzererfahrung zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich die ListBox mit Daten aus einem Excel-Blatt füllen?
Du kannst die ListBox während der Initialisierung der UserForm mit folgendem Code füllen:

Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("DeinBlattname")
    ListBox1.RowSource = ws.Range("A1:B10").Address
End Sub

2. Was kann ich tun, wenn die ListBox keine Werte anzeigt?
Überprüfe, ob der angegebene Bereich in der RowSource korrekt ist und ob die Daten im angegebenen Bereich vorhanden sind.

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