Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1136to1140
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Combobox über Bereichsnamen befüllen

Combobox über Bereichsnamen befüllen
Herbert
Hallo,
für mein Problem habe ich noch keinen passenden Forumseintrag gefunden ...
Ich habe zwei Comboboxen auf einer Userform. In der ersten werden Teams ausgewählt, in der zweiten sollen entsprechend der Auswahl in der Combobox1 die zum jeweiligen Team zugehörigen Teammitglieder erscheinen. Die Teammitglieder stehen auf dem Tabellenblatt2 und sind über Einfügen/Namen/Definieren jeweils zu einem Team zusammengefasst. Die Einträge in der Combobox1 entsprechen diesen Bereichsnamen.
Wie sage ich nun der zweiten Combobox, dass sie zum einen auf die Auswahl in Combobox1 reagiert und zum anderen sich dann den entsprechenden Bereichsnamen auf dem Tabellenblatt2 sucht und schließlich die entsprechenden Teammitglieder zur Auswahl zur Verfügung stellt?
Geht das vielleicht mit Hilfe von Arrays, oder ist das eher umständlich? Wenn nicht, wie kann ich dem Array sagen, dass es seinen Inhalt unter dem jeweiligen Bereichsnamen findet.
Ich hoffe, ich konnte mich verständlich ausdrücken und bin schon einmal für eure Hilfe sehr dankbar.
Gruß,
Herbert

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
so müsste es funktionieren...
16.02.2010 11:48:46
Tino
Hallo,
if Combobox1.Value  "" then
ComboBox2.List = sheets("Tabelle2").Range(Combobox1.Value).Value2
End if
Gruß Tino
...oder vielleicht so...
16.02.2010 11:59:38
Renee
Hi Herbert,
Private Sub ComboBox1_Change()
ComboBox2 = ""
ComboBox2.RowSource = Worksheets("Tabelle2").Range(ComboBox1).Address
End Sub

GreetZ Renée
AW: so müsste es funktionieren...
16.02.2010 12:23:10
Herbert
Hallo Tino,
super vielen Dank für die schnelle Antwort. Leider funktioniert es noch nicht, daher meine Frage, ob mit der Range-Eigenschaft auch tatsächlich ein Bereichsname angesprochen wird?
Mit der Value2-Eigenschaft bin ich nicht vertraut.
Ich will mein Anliegen noch einmal anders aufschreiben:
Spalte A
Zeile 1 Team A
Zeile 2 Team B
Zeile 3 Name 1
Zeile 4 Name 2
Zeile 5 Name 3
Zeile 6 Name 4
Zeile 7 Name 5
Zeile 8 Name 6
In den Zeilen 1 und 2 stehen die Teambezeichnungen, Team A und Team B. Die Namen 1 bis 3 sind dem Team A, die Namen 4 bis 6 dem Team B zugeordnet. Dazu wurden die Namen 1 bis 3 als Block (A3:A5) mit dem Bereichsnamen "Team A" definiert. Entsprechendes für das Team B.
Die Teambezeichnungen Team A und Team B finden sich nun in der Combobox1 auf der Userform wieder. Wenn ich nun Team A auswähle, soll die Combobox2 erkennen, dass sie sich die Namen besorgen soll, die unter dem Bereichsnamen "Team A" auf dem Tabellenblatt2 zu finden sind, also die Namen 1 bis 3.
Anzeige
AW: so müsste es funktionieren...
16.02.2010 12:41:20
Tino
Hallo,
normal sollte es funktionieren, hast Du den Tabellennamen angepasst?
ComboBox2.List kann man mittels Array füllen, durch Value2 ist der Zellbereich bereits ein Array.
Nachteil Value2 gibt den tatsächlichen Zellwert zurück nicht den angezeigten, aber bei Namen (Text) spielt dies i.d.R. keine Rolle.
Oder verwende die Version von Renee und stelle den Tabellennamen noch davor.
ComboBox2.RowSource = "Tabelle2!" & Worksheets("Tabelle2").Range(ComboBox1).Address
Du kannst Dir auch mal die Parameter von Address ansehen.
ComboBox2.RowSource = Worksheets("Tabelle2").Range(ComboBox1).Address(External:=True)
sollte auch funktionieren.
Gruß Tino
Anzeige
AW: so müsste es funktionieren...
16.02.2010 14:16:15
Herbert
Hi Tino
ja, den Tabellennamen habe ich angepasst. Ich verstehe auch soweit die Codezeile und bin davon überzeugt, dass die eigentlich richtig ist.
Dass es nicht klappt, kann aber nicht daran liegen, dass ich die Combobox1 in einem userform_initialize Ereignis und die Combobox2 in einem Combobox2_Change Ereignis stehen habe, oder?
Gruß
Herbert
AW: so müsste es funktionieren...
16.02.2010 14:57:24
Renee
Hi Herbert,
Aussagen wie Dass es nicht klappt... sind immer zu vage. Gibt es eine Fehlermeldung ? Wenn ja welche ? Wenn nein, hast du Debugged und die Inhalte kontrolliert ?
Falls dir das ComboBox-Change Ereignis dazwischenfunkt, schalte es aus (siehe Code unten).
Deine Team-Bezeichnungen können nicht wie im Beispiel mit den Bereichs-Namen übereinstimmen, da letztere keine Leerzeichen enthalten dürfen. Wenn die Bereichsnamen statt Leerzeichen, Underlines enthalten würde es funktionieren. Hier werden Leerstellen durch solche ersetzt:
Private Sub ComboBox1_Change()
ComboBox2.Tag = "DoNothing"
ComboBox2 = ""
If ComboBox1  "" Then
ComboBox2.RowSource = Range(Replace(ComboBox1, " ", "_")).Address(External:=True)
End If
ComboBox2.Tag = ""
End Sub
Private Sub ComboBox2_Change()
If ComboBox2.Tag = "DoNothing" Then Exit Sub
MsgBox "Blabla ... hier ist mein Code!"
End Sub

GreetZ Renée
Anzeige
AW: so müsste es funktionieren...
16.02.2010 16:08:34
Herbert
Hi Renée,
sorry, für die vaage Ausdrucksweise. Ich muss mich erst noch an die präzisere Ausdrucksweise, die im Bereich der Programmierung wohl nötig ist, gewöhnen. Es kam keine Fehlermeldung.
Die gute Nachricht ist, dass mein Problem mit deiner letzten Hilfstellung gelöst ist. Es funktioniert! Mit den Leerzeichen hatte ich keine Probleme, die hatte ich entfernt. Es lag an den unterschiedlichen Ereignissen.
Vielen Dank!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige