Microsoft Excel

Herbers Excel/VBA-Archiv

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

ListBox füllem


Betrifft: ListBox füllem von: Sarah
Geschrieben am: 05.10.2017 15:43:26

Hallo Zusammen,

ich möchte eine Listbox mit Werten aus den Spalten A und B eines Excel-Datenblatts füllen. Da sich die Anzahl der Zeilen verändert, möchte ich keine Range (z. B. A1:B25) festlegen.

Ich habe es mit folgendem Code versucht, erhalte jedoch den Laufzeitfehler 91.

    
    Dim fc As Long
    Dim fRow As Long
    Dim fCounter As Integer
    For fCounter = 1 To 2

    fRow = .Sheets("Fehlercodes").Cells(Rows.Count, 1).End(xlUp).Row
    For fc = 1 To fRow
            ListBox1.AddItem .Sheets("Fehlercodes").Cells(fc, fCounter).Value
    Next fc
    Next fCounter

  

Betrifft: AW: ListBox füllem von: Nepumuk
Geschrieben am: 05.10.2017 15:59:35

Hallo Sarah,

ich würde das so machen:

With Worksheets("Fehlercodes")
    ListBox1.List = .Range(.Cells(1, 1), .Cells(.Rows.Count, 2).End(xlUp)).Value
End With

Gruß
Nepumuk


  

Betrifft: AW: ListBox füllem von: Sarah
Geschrieben am: 06.10.2017 15:55:33

Entschuldigung das ich mich nun erst melde, diese Lösung hat einwandfrei funktioniert.

Vielen Dank.


  

Betrifft: AW: ListBox füllem von: Werner
Geschrieben am: 05.10.2017 16:00:43

Hallo Sarah,

z.B. so wenn die Listbox auf einer Userform ist:

Private Sub UserForm_Initialize()
Dim loLetzte As Long
Dim raBereich As Range

With Worksheets("Tabelle1") 'Blattname anpassen
    'Ermitteln der letzten belegten Zelle in Spalte A
    loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
    'Bereich von A1 bis B letzteBelegteZelle festlegen
    Set raBereich = .Range(.Cells(1, 1), .Cells(loLetzte, 2))
End With

'festgelegten Bereich an Listbox übergeben
Me.ListBox1.RowSource = raBereich.Address

End Sub
Der Code gehört ins Codemodul der Userform. Nicht vergessen in den Eigenschaften der Listbox ColumnCount auf 2 (2 Spalten) einzustellen und bei ColumnWidth die Spaltenbreite deinen Bedürfnissen anzupassen.

Gruß Werner


  

Betrifft: AW: ListBox füllem von: Sarah
Geschrieben am: 06.10.2017 15:56:29

Leider habe ich hierbei ebenfalls einen Laufzeitfehler erhalten. Der Code von nepumuk hat aber funktioniert.


  

Betrifft: AW: ListBox füllem von: Sarah
Geschrieben am: 06.10.2017 16:08:13

Hallo Zusammen,

nun habe ich mit der ListBox folgenden Fall.

Ich habe die Textboxen1 - 4 in denen steht Text mit Semikolon getrennt
Beispiel:
TextBox1: Test1; Test2; Test3 ...
TextBox2: A; B; C ...
TextBox3: 1; 2; 3
TextBox4: X; Y; Z

Nun möchte ich das die Werte aus den 4 Textboxen in die Listboxspalten übergehen, aber für die Daten nach dem Semikolon soll eine neue Zeile gewertet werden.
Spalte 1: / Spalte 2: / Spalte 3: / Spalte 4:
Test1 / A / 1 / X
Test2 / B / 2 / Y
Test3 / C / 3 / Z

Kann man dies überhaupt mit VBA umsetzen? Wenn ja, wie kann ich das Semikolon als Trennzeichen für die nächste Spalte definieren?


  

Betrifft: AW: ListBox füllem von: Nepumuk
Geschrieben am: 06.10.2017 16:29:59

Hallo Sarah,

da deine Angaben ein bisschen nebulös sind (z.B. woher kommt der Text in den TextBoxen) hab ich dir mal eine Mustermappe erstellt die dir das Prinzip zeigen soll wie es funktionieren kann.

https://www.herber.de/bbs/user/116781.xlsm

Gruß
Nepumuk


Beiträge aus den Excel-Beispielen zum Thema "ListBox füllem"