Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
476to480
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
476to480
476to480
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

nochmal code verkürzen

nochmal code verkürzen
27.08.2004 23:34:17
Erich
hallo Excelprofis,
wie kann ich den nachfolgenden code verkürzen?

Private Sub UserForm_Initialize()
Dim frm As UserForm
Dim i As Integer
Dim iMax As Integer
Set frm = UserForm1
With frm.ComboBox1
.Clear
iMax = ActiveSheet.UsedRange.Rows.Count
For i = 2 To iMax
.AddItem Worksheets("System").Cells(i, 1)
Next i
End With
End Sub

es sind insgesamt 90 comboboxen alle mit den gleichen werten geladen weden sollen.
kann mir jemand weiter helfen?
gruß
erich

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
alle ComboBox in UserForm füllen
28.08.2004 00:28:27
Christoph
Hallo Erich
prinzipiell wäre ich vorsichtig mit "UsedRange"
Besser ist, du fragst die letzte Zelle mit "Cells(Rows,Count, 1).End(xlUp).Row" ab.
Ist keineswegs langsamer, aber dafür zuverlässig
Des Weiteren verstehe ich nicht, warum du einmal "ActiveSheet" verwendest und das nächste mal "Worksheets("System")".
Es macht ja wohl wenig Sinn, die letzte Zeile (iMax) in Tab1 zu ermitteln, und dann in Tab2 bis iMax zu laufen.

Noch 'ne Frage:
Ist "frm" diejenige Userform, die du mit diesem Code initialisierst?
Wenn ja, dann brauchst hierfür keine eigene Variable. Besser, du referenzierst auf die Form mit "Me"
Doch jetzt zu deiner Frage bezüglich der Comboboxes
(den Code musst du noch an deine Bedingungen anpassen...)

Private Sub UserForm_Initialize()
Dim i As Integer, j As Integer
Dim iMax As Integer
iMax = Sheets("System").Cells(Rows.Count, 1).End(xlUp).Row
With Me
For j = 1 To 90    'so viele?
.Controls("ComboBox" & j).Clear
For i = 2 To iMax
.Controls("ComboBox" & j).AddItem Sheets("System").Cells(i, 1)
Next i
Next j
End With
End Sub

Gruß
Christoph
Anzeige
Danke
28.08.2004 00:39:31
Erich
danke für die hilfe
AW: alle ComboBox in UserForm füllen
28.08.2004 11:49:26
Nepumuk
Hallo Erich,
die schnelle Variante:


Private Sub UserForm_Activate()
    Dim int_Index As Integer
    With Sheets("System")
        For int_Index = 1 To 90
            Controls("ComboBox" & int_Index).List = .Range(.Cells(2, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 1)).Value
        Next
    End With
End Sub


Gruß
Nepumuk
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige