Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

ListBox Füllen | Herbers Excel-Forum


Betrifft: ListBox Füllen von: Ralf
Geschrieben am: 25.01.2012 20:02:57

Hallo Forum

Fülle meine Listbox mit fogenden Code , nun meine Frage , gibt es eine möglichkeit die Zeilenanzahl in der
Listbox an der Zeilenanzahl des Tabellenblatt anzupassen . Z.B wenn ich 45 belegte Zeilen habe das die Listbox variabel darauf reagiert , oder muss ich das jedesmal anpassen ?

Public Sub UF3ListBox1Füllen()
Dim lnglast
Dim lngRow
UserForm3.ListBox1.Clear
UserForm3.ListBox1.ColumnCount = 10
UserForm3.ListBox1.ColumnWidths = "80;70;90;100;140;70;70;80;130;60"
UserForm3.ListBox1.TextAlign = fmTextAlignLeft
With ActiveSheet
lnglast = Application.Max(30, .Cells(Rows.Count, 1).End(xlUp).Row)
For lngRow = 2 To lnglast
UserForm3.ListBox1.AddItem .Cells(lngRow, 20)
UserForm3.ListBox1.List(UserForm3.ListBox1.ListCount - 1, 1) = .Cells(lngRow, 21)
UserForm3.ListBox1.List(UserForm3.ListBox1.ListCount - 1, 2) = .Cells(lngRow, 23)
UserForm3.ListBox1.List(UserForm3.ListBox1.ListCount - 1, 3) = .Cells(lngRow, 24) & " " & .Cells(lngRow, 25)
UserForm3.ListBox1.List(UserForm3.ListBox1.ListCount - 1, 4) = .Cells(lngRow, 26) & " " & .Cells(lngRow, 27)
UserForm3.ListBox1.List(UserForm3.ListBox1.ListCount - 1, 5) = .Cells(lngRow, 28)
UserForm3.ListBox1.List(UserForm3.ListBox1.ListCount - 1, 6) = .Cells(lngRow, 29)
UserForm3.ListBox1.List(UserForm3.ListBox1.ListCount - 1, 7) = .Cells(lngRow, 31)
UserForm3.ListBox1.List(UserForm3.ListBox1.ListCount - 1, 8) = .Cells(lngRow, 33)
UserForm3.ListBox1.List(UserForm3.ListBox1.ListCount - 1, 9) = .Cells(lngRow, 38)
Next
UserForm3.ListBox1.ListIndex = 0
End With

Gruss Ralf

  

Betrifft: Hallo Ralf von: Dirk
Geschrieben am: 25.01.2012 20:41:08

wenn ich dich richtig verstehe möchtest du die anzahl der gefüllten zellen als max für deine ListBox ermittel, diese in einer Variable speichern und bei .ColumnCount eintragen?

(ich glaub das war die Zeilenanzahl oder?)

ich denke die schönste lösung ist, da ich davon ausgehe das die die auch in der Listbox listen willst, den bereich in ein array zu lesen und dann mit ubound

so ungefähr

Dim zd As Variant
zd = ActiveSheet.Range("a1", Range("a1").End(xlDown))
i = UBound(zd)
MsgBox (i)
gruß
Dirk


  

Betrifft: AW: Hallo Ralf von: Ralf
Geschrieben am: 26.01.2012 19:32:11

Hallo Dirk , Hallo Forum

Kenn mich mit array und ubound gar nicht aus und weiss nicht was ich damit machen soll !
Ich lese von Zeile2 Zelle t bis ag ein , er sucht solange bis die zb Zeile 30 Zelle T leer ist ,
und das liest er mir in die Listbox ein . Mein Problem über Application.Max(30,) gebe ich die
Zeilenanzahl in der Listbox vor , wenn ich jetzt zb bis Zeile 45 Werte eingtragen habe muss
ich Application.Max Wert ändern . Das wollte ich eventuell mit Variable machen , aber keine
Ahnung wie .

Gruss Ralf


  

Betrifft: Hallo Ralf von: Dirk
Geschrieben am: 26.01.2012 20:34:46

Hallo Ralf
mach mal folgendes
erstelle ein neues Makro und schreibe da das hinnein

i = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox (i)

wie du feststellen wirst ist i = anzahl ausgefüllte Zellen

Gruß
Dirk


  

Betrifft: AW: Hallo Ralf von: Ralf
Geschrieben am: 27.01.2012 16:37:27

Hallo Dirk , Hallo Forum



Erstmal Danke für deine Hilfe . Hab es jetzt verstanden , was lange währt wird gut .

Funktioniert so wie Ich es wollte .





Gruss Ralf


Beiträge aus den Excel-Beispielen zum Thema "ListBox Füllen"