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

Forumthread: Combobox mit gefilterten Werten füllen

Combobox mit gefilterten Werten füllen
25.11.2013 09:31:02
Ina
Hallo zusammen,
ich brauche eure Hilfe bei folgendem Problem:
Ich habe eine Tabelle mit Personendaten (Spalte 1: Name, Spalte 2:Vorname, Spalte 3:Personalnummer, Spalte 4: Team)
Nun wird über einen Button ein userform aufgerufen, in welches die Mitarbeiter Daten eingeben sollen. Dabei wählen sie zuerst ihr Team aus einer Combobox aus (1-4 ist möglich). Nun sollen sie in der nächsten Combobox ihren Namen auswählen, damit die eingegebenen Daten zugeordnet werden können.
Damit die Liste nicht so lang ist, sollten hier nur der Name und Vorname (also Spalte 1 und 2 aus der Tabelle Personendaten) angezeigt werden, bei denen Spalte 4 dem Team entspricht, dass in der Combobox ausgewählt wurde.
Vielleicht könnt ihr mir helfen?
LG
Ina

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combobox mit gefilterten Werten füllen
25.11.2013 09:34:50
Klaus
Hallo Ina,
Combobox1 mit gefilterten Inhalten einer Liste füllen (Liste sei A2:C200, Combobox bekommt Spalte C)
Dim r As Range
ComboBox1.Clear
For Each r In Range("C2:C200").SpecialCells(xlCellTypeVisible)
ComboBox1.AddItem r.Value
Next r
durch .SpecialCells(xlCellTypeVisible) wird der gefilterte Teil der Liste übersprungen. Braucht eine Fehlerbehandlung, falls die Liste auf 0 Einträge gefiltert wurde.
Grüße,
Klaus M.vdT.

Anzeige
AW: Combobox mit gefilterten Werten füllen
25.11.2013 09:37:07
Ina
Hallo Klaus,
vielen Dank für die Antwort, allerdings ist die Liste noch nicht gefiltert, dies sollte eigentlich im Makro passieren.
Dementsprechend kann ich diese Lösung nicht verwenden..

AW: Combobox mit gefilterten Werten füllen
25.11.2013 09:52:29
Ina
Hab' vergessen das Kontrollkästchen für "ungelöst" zu aktivieren, deshalb nochmal :)

Anzeige
AW: Combobox mit gefilterten Werten füllen
25.11.2013 11:06:03
Ina
Also erstmal vielen Dank, er zeigt jetzt die richtigen Daten in der Combobox an, allerdings habe ich jetzt folgendes Problem:
Diese Daten werden später noch in ein anderes Dokument übertragen. Dementsprechend brauche ich es so, dass zwar im Dropdown Name und Vorname angezeigt wird zur Auswahl, allerdings nur der Nachname bei Auswahl tatsächlich in das Feld geschrieben wird. Vorname und Nachname werden mit diesem Code in die anderen Felder geschrieben.
Me.cboPersonal.SetFocus
a = Me.cboPersonal.ListIndex
Me.txtPersoNr.Value = Me.cboPersonal.List(a, 2)
Me.txtVorname.Value = Me.cboPersonal.List(a, 1)
Das Funktioniert jetzt nicht mehr. Ist verständlich was ich brauche?

Anzeige
AW: Combobox mit gefilterten Werten füllen
25.11.2013 11:20:43
hary
Moin Ina
Hol doch die Angabn direkt aus dem Blatt, die richtige Zeilennummer hast du ja in der ausgeblendeten 2. Spalte der Cbo2.
Somit koennte man auch aenderungen zurueckschreiben.
https://www.herber.de/bbs/user/88243.xlsm
gruss hary

Anzeige
AW: Combobox mit gefilterten Werten füllen
25.11.2013 11:34:45
Ina
So funktioniert es echt super! Jetzt habe ich leider noch ein letztes Problem bis es optimal läuft:
Es werden in der Combobox Vor- und Nachname angezeigt, weil es ja zwei Personen geben kann, die den gleichen Nachnamen haben.
Die Werte werden später in eine andere Excel übertragen die an SAP geht. Ich übertrage den Wert aus der Combobox Nachname auch an diese Liste. Deshalb brauche ich hier nur den Nachnamen. So wie es zur Zeit ist, wird allerdings Vor- und Nachname in das Feld Nachname geschrieben.
Wie kann ich das hier noch abfangen?
Viiielen Dank schonmal für deine Hilfe, stehe grade total auf dem Schlauch.

Anzeige
AW: Combobox mit gefilterten Werten füllen
25.11.2013 12:46:20
Ina
Hat sich erledigt - hab's hinbekommen :)
Anzeige
Anzeige

Infobox / Tutorial

Combobox mit gefilterten Werten in Excel VBA füllen


Schritt-für-Schritt-Anleitung

  1. Erstelle ein UserForm in Excel mit zwei Comboboxen (ComboBox1 für das Team und ComboBox2 für die Namen).
  2. Füge einen Button hinzu, der das UserForm öffnet.
  3. Füge den folgenden VBA-Code im Code-Editor des UserForms ein:
Private Sub UserForm_Initialize()
    ' Fülle ComboBox1 mit Teams
    ComboBox1.AddItem "Team 1"
    ComboBox1.AddItem "Team 2"
    ComboBox1.AddItem "Team 3"
    ComboBox1.AddItem "Team 4"
End Sub

Private Sub ComboBox1_Change()
    ' Leere ComboBox2
    ComboBox2.Clear
    Dim r As Range
    Dim team As String
    team = ComboBox1.Value

    ' Fülle ComboBox2 mit gefilterten Namen
    For Each r In Range("A2:C200") ' Angenommene Datenreichweite
        If r.Offset(0, 3).Value = team Then ' Spalte 4 (Team)
            ComboBox2.AddItem r.Value ' Spalte 1 (Nachname)
            ComboBox2.List(ComboBox2.ListCount - 1, 1) = r.Offset(0, 1).Value ' Spalte 2 (Vorname)
        End If
    Next r
End Sub
  1. Starte das UserForm und teste die Funktionalität. Wenn ein Team ausgewählt wird, sollten nur die passenden Namen in der zweiten Combobox angezeigt werden.

Häufige Fehler und Lösungen

  • Problem: Combobox bleibt leer.

    • Lösung: Stelle sicher, dass die Daten in der angegebenen Range (A2:C200) korrekt sind und dass die Filterbedingungen in der ComboBox1_Change-Prozedur richtig geprüft werden.
  • Problem: Falsche Werte werden in die Felder geschrieben.

    • Lösung: Vergewissere dich, dass die Indizes in der Listeneinträge korrekt sind. Verwende ListIndex, um den richtigen Eintrag auszuwählen.

Alternative Methoden

Eine andere Möglichkeit, die Combobox mit gefilterten Werten zu füllen, ist die Verwendung von Excel-Tabellen oder Named Ranges. Diese können dynamisch aktualisiert werden und erleichtern das Management von Daten in großen Tabellen.


Praktische Beispiele

Wenn Du eine Excel-Tabelle mit den folgenden Daten hast:

Nachname Vorname Personalnummer Team
Müller Max 123 Team 1
Schmidt Anna 456 Team 2
Meyer Tom 789 Team 1

Stellt die Auswahl in ComboBox1 auf "Team 1" ein. Die ComboBox2 sollte dann nur "Müller" und "Meyer" anzeigen.


Tipps für Profis

  • Fehlerbehandlung: Integriere eine Fehlerbehandlung, um sicherzustellen, dass die Anwendung auch bei leeren Daten oder unerwarteten Eingaben stabil bleibt. Nutze On Error GoTo in deinem VBA-Code.
  • Datenvalidierung: Verwende die Datenvalidierung in Excel, um sicherzustellen, dass nur gültige Teams in die erste Combobox eingegeben werden können.

FAQ: Häufige Fragen

1. Frage
Wie kann ich die Combobox so einstellen, dass nur der Nachname in das Feld geschrieben wird?
Antwort: Du kannst den Nachnamen nach der Auswahl einfach der ComboBox2 zuweisen, während der Vorname für andere Berechnungen oder Übertragungen verwendet wird. Stelle sicher, dass Du nur den Wert der ersten Spalte übergibst.

2. Frage
Kann ich die Daten in der Combobox auch sortieren?
Antwort: Ja, Du kannst die Werte in der Combobox sortieren, indem Du die Einträge in einer Array- oder Collection-Struktur speicherst und dann sortierst, bevor Du sie der Combobox hinzufügst.

Mit diesen Anleitungen und Tipps bist Du bestens gerüstet, um Comboboxen in Excel VBA effektiv zu nutzen und mit gefilterten Werten zu füllen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige