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

Forumthread: VBA - 2 Userforms m. Comboboxen

VBA - 2 Userforms m. Comboboxen
01.11.2023 15:15:42
Streicher
Hallo zusammen,

ich habe Probleme bei folgender Aufgabenstellung:
Ich möchte auf einem Arbeitsblatt zwei Buttons erstellen, die jeweils eine Userform mit Combobox starten. Diese Comboboxen sollen unterschiedlich mit jeweils einer Spalte aus 2 unterschiedlichen Tabellenblättern befüllt werden, also z.B:

Tabellenblatt1 - Button1 - Userform1 - Combobox1-befüllt mit Spalte A aus Tabellenblatt 2
Tabellenblatt1 - Button2 - Userform2 - Combobox2- befüllt mit Spalte A aus Tabellenblatt 3

Erstellen der Buttons + die 2 Userforms mit den Comboboxen aufzurufen ist nicht das Problem, ich scheitere beim befüllen der Comboboxen auf den unterschiedlichen Userforms.
Mit nur einer Userform funktioniert das befüllen mehrerer Comboboxen aus verschiedene Tabellenblättern gut, und zwar über:



Private Sub UserForm_Initialize()
combobox1.List = Range("intelligenteTabelle1[Spalte1]").Value
combobox2.List = Range("intelligenteTabelle2[Spalte1]").Value
End Sub

Mit einer 2. Userform kann ich aber zum einen keinen zweiten Userform_Initialize() Event aufrufen, bzw. macht VBA das zwar, aber die Liste in der Combobox2 stimmt dann einfach nicht, bzw. wird dann auch die Liste der Combobox1 angezeigt, was auch Sinn ergibt, da der Initialize-Event sicherlich nur einmal vorkommen darf.
Zum anderen kann ich auch nicht die 2. Zeile von oben


combobox2.List = Range("intelligenteTabelle2[Spalte1]").Value

einfach in Userform1 packen, da sich ja die Combobox auf Userfom2 befindet und somit die Variable combobox2 nicht erkannt wird...
Wahrscheinlich steh ich auf dem Schlauch, aber ich komme nicht mehr weiter...

Grüße,
Streicher
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - 2 Userforms m. Comboboxen
01.11.2023 15:38:45
daniel
Jede Userform hat ihr eigenes Initialize-Event.
Im Initialize-Event der Userform1 befüllst du die Combobox der Userform1 und im Initialize-Event der Userform2 befüllst du die Combobox der Userform2

Eigentlich ganz einfach.

Oder du sparst dir den Code zum befüllen und vernüpfst die Comboboxen direkt mit den Zellbereichen.
Hierzu trägt man in der Eigenschaftsliste der Combobox die Adresse des Zellbereichs in die Eigenschaft RowSource ein.
Dies kann entweder sein:
- die Konkrete Adresse möglichst mit Blattnamen: 'Tabelle1'!a1:A9
- ein NAME, wenn du einen Zellbereich benannt hast.

Ob du die Bezeichnungen der intelligenten Tabelle direkt verwenden kannst weiß ich nicht, aber falls nicht, kannst du diesen erst einem normalen Namen zuweisen und dann diesen verwenden.

Gruß Daniel
Anzeige
AW: VBA - 2 Userforms m. Comboboxen
01.11.2023 15:38:48
onur
Wenn du, wie bei Blättern, die Userform mit angibst, auf der sich das Control befindet, bist du auf der sicheren Seite.
Nicht
combobox1.List
sondern (z.B.)
UserForm1.combobox1.List
AW: VBA - 2 Userforms m. Comboboxen
01.11.2023 15:57:41
Streicher
Es geht, ich bedanke mich herzlich !
Habe 2. Intitialize-Event aufgemacht und gebe da zusätzlich die Userform vorher mit an...
K.a. was ich da vorher falsch gemacht hab...

Danke nochmals und Grüße,
Streicher
Anzeige
Gerne !
01.11.2023 16:07:37
onur
Wie bei den Sheets: Wenn du dich im Modul von z.B. Userform1 befindest, sucht VBA sämtliche Controlnamen im Code wie ComboBox2, bei denen die Userformnamen nicht angegeben sind, immer nur auf Userform1.
Wie bei Telefonnummern. Wenn du einem Kölner deine Kölner Telefonnummer gibst, reicht die Nummer alleine. Wenn du aber z.B. in Hamburg Jemandem deine Nummer gibst, solltest du die Vorwahl mit angeben, da er sonst glaubt, es wäre eine Hamburger Nummer.
Anzeige
AW: Gerne !
01.11.2023 19:05:50
Streicher
Danke onur, das ist ein sehr anschauliches Beispiel, der Groschen ist gefallen denke ich...

Grüße
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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