Comboboxen in Userform füllen
Betrifft: Comboboxen in Userform füllen
von: Jens_Pu
Geschrieben am: 20.09.2004 13:13:23
Hallo Excelfreunde,
nach einer längeren Excelpause habe ich mal wieder ein Problem.
Wie muß ich die 2. Controls-Zeiel schreiben, damit immer die zur jeweiligen Combobox gehörige RowSource eingelesen wird?
Die UserForm initialisiere ich so:
Private Sub UserForm_Initialize()
Dim i As Byte 'Objektzähler
For i = 1 To 2 'mal 2 zum testen, sind aber atwa 40
Controls("ComboBox" & i).Clear
Controls("Combobox" & i).RowSource = "Formdat!C3:C" & Sheets("Formdat").Range("C65536").End(xlUp).Row
Next i
End Sub
Das Worksheet "Formdat ist folgendermaßen aufgebaut:
|
|
| C | D | E | 2 | Combobox1 | Combobox2 | Combobox3 | 3 | | | | 4 | 1 | 1 | Ofr | 5 | 2 | 2 | Mfr | 6 | 3 | 3 | Ufr | 7 | | 4 | Opf | 8 | | 5 | | 9 | | 6 | | 10 | | 7 | | 11 | | 8 | | 12 | | 9 | | 13 | | 10 | | |
|
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen Excel Jeanie HTML 3.0 Download Kann mir jemand auf die Sprünge helfen?
Gruß Jens
Betrifft: AW: Comboboxen in Userform füllen
von: Klaus Schubert
Geschrieben am: 20.09.2004 19:48:04
Hallo Jens,
versuch's mal hiermit:
Private Sub UserForm_Initialize()
Dim i As Integer, LetzteZelleSpalte As Integer
Dim ErsteZeileDaten As Integer, SpalteComboBox1 As Integer
Dim AnzahlComboBox As Integer, Datenblatt As Worksheet
Dim Bereich As String, NameDatenblatt As String
'--------------------------------------------------------------
NameDatenblatt = "Formdat"
SpalteComboBox1 = 3 '3 entspricht Spalte C, 4 = Spalte D usw.
ErsteZeileDaten = 3 'Bei Zeile 3 beginnen
AnzahlComboBox = 2 'entsprechend der eigenen Anzahl anpassen
'--------------------------------------------------------------
Set Datenblatt = Sheets(NameDatenblatt)
Datenblatt.Cells(ErsteZeileDaten, SpalteComboBox1).Activate
SpalteComboBox1 = SpalteComboBox1 - 1
For i = 1 To AnzahlComboBox
LetzteZelleSpalte = _
Datenblatt.Cells(Cells.Rows.Count, i + SpalteComboBox1).End(xlUp).Row
Bereich = Range(Cells(ErsteZeileDaten, i + SpalteComboBox1), _
Cells(LetzteZelleSpalte, i + SpalteComboBox1)).Address
Controls("ComboBox" & i).Clear
Controls("Combobox" & i).RowSource = _
NameDatenblatt & "!" & Bereich
Next i
End Sub
Zumindest mit Office 2000 funktioniert es bei mir, Excel 2003 weiß ich nicht.
Habe viele Variablen benutzt, damit die Anpassung hoffentlich einfacher ist.
Gruß Klaus
Betrifft: AW: Comboboxen in Userform füllen
von: Jens_Pu
Geschrieben am: 21.09.2004 09:08:58
Hallo Klaus,
vielen Dank für Deine Lösung.
Habe gestern auch noch etwas rumprobiert und bin auch zu dieser Lösung gekommen.
Wobei mir Deine Version mit den Variablen etwas besser gefällt, wegen der Übersichtlichkeit. Geht mit Excel 2003.
Gruß Jens
Beiträge aus den Excel-Beispielen zum Thema "Comboboxen in Userform füllen"