Herbers Excel-Forum - das Archiv

Listboxname über Schleife ansprechen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Listboxname über Schleife ansprechen
von: Christoph

Geschrieben am: 05.01.2007 17:55:04
Hallo Miteinander,
ich habe ein Problem mit dem Ansprechen von Listboxen über Namen.
Ich möchte über eine Schleife einen Listbox-Namen übergeben und diesen füllen. Dies klappt aber nicht, da ich Ihn nicht sauber definiere und einen Fehler 91 bekomme. Was mach ich falsch.
Über eine Antwort wäre ich dankbar.
Anbei ein kleiner Codebestandteil.
mfg
Christoph
Private Sub UserForm_Initialize()
Dim strAktBuchst As String
' Hier liegt das Problem. Object oder Variant funktioniert nicht.
Dim varCombBox As ????
shAUSW.Select
lngAnzDatSatz = cells(Rows.Count, cells(1, Columns.Count).End(xlToLeft).Column).End(xlUp).Row
' Hier wird eine Schleife durchlaufen, die die Namen der ListBox holt
For lngI = 1 To 12
strAktBuchst = shINIT.cells(lngI, 7)
' hier werden die Namen aus einem anderen Arbeitsblatt eingelesen. Der Wert erscheint.
varCombBox.name = shINIT.cells(lngI, 9)
' Hier erfolgt der Fehler 91, weil er mit dem übergebenen Namen nicht anfangen kann
With varCombBox
.List = suchDaten
.ListIndex = 0
End With
Next lngI
End Sub

Bild

Betrifft: AW: Listboxname über Schleife ansprechen
von: Ramses

Geschrieben am: 05.01.2007 18:52:18
Hallo
mit dem Teil kann man eigentlich nicht wirklich was anfangen.
Da fehlen zuviele Infos.
Aber was sicherlich falsch ist
Dim varCombBox As Control
und das reicht nicht, du musst der Variable natürlich auch noch das Object zuweisen
Set varCombBox = Me.Controls("Combobox1")
Damit sollte zumindest die With-Schleife funktionieren
"....' hier werden die Namen aus einem anderen Arbeitsblatt eingelesen. Der Wert erscheint.
varCombBox.name = shINIT.cells(lngI, 9)..."
Das kann eigentlich nicht funktionieren, AUSSER die Combobox heisst so.
Gruss Rainer
Bild

Betrifft: AW: Listboxname über Schleife ansprechen
von: Christoph
Geschrieben am: 05.01.2007 19:23:58
Hallo Rainer,
herzlichen Dank für Deine Hilfe. Es läuft.
mfg
Christoph
Bild

Betrifft: AW: Listboxname über Schleife ansprechen
von: Christoph
Geschrieben am: 06.01.2007 07:21:52
Hallo Rainer,
herzlichen Dank für Deine Hilfe. Es läuft.
mfg
Christoph
Bild

Betrifft: AW: Listboxname über Schleife ansprechen
von: ChrisL

Geschrieben am: 05.01.2007 18:53:45
Hallo Christoph
Im Moment, wenn das Userform initialisiert wird, ist es bereits geladen. Daher kannst du die ComboBox direkt ansprechen. Ist der Name der ComboBox einmal definiert, würde ich nicht mehr ändern, da dieser für den Benutzer "unsichtbar" ist. Im Beispiel lautet der Name der ComboBox: "ComboBox1"
Entscheidend sind u.a. die ComboBox-Eigenschaften Text resp. Value.
ComboBox1.Text = "Hallo Welt"
Um eine Liste zu hinterlegen gibt es verschiedene Methoden u.a.
ComboBox1.AddItem "Auswahl1"
ComboBox1.AddItem "Auswahl2"
ComboBox1.AddItem "Auswahl3"
usw.
Dann gibts noch RowSource, wo du einen Tabellenbereich definieren kannst.
Weiter besteht die Möglichkeit über die List-Eigenschaft, ganze Datenfelder abzufüllen. Mit Array (Feldvariablen usw.), daher etwas komplizierter
Private Sub UserForm_Initialize()
Dim arr(2) As Variant
arr(0) = "Auswahl1"
arr(1) = "Auswahl2"
arr(2) = "Auswahl3"
ComboBox1.List = arr
End Sub

Gruss
Chris
 Bild
Excel-Beispiele zum Thema "Listboxname über Schleife ansprechen"
In einer Schleife auf Elemente einer UserForm zugreifen CheckBoxes in UserForms in eine Schleife einbinden
Gruppe von UserForm-ListBoxes über eine Schleife ansprechen UserForm-Optionsfelder über eine Schleife zurücksetzen
Alle CheckBoxes einer UserForm ansprechen Office-Assistenten ansprechen
UserForm-ComboBoxes als Collection-Objekte ansprechen