Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1252to1256
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
Mehrzeilige Listbox mit strings füllen
Dieterlem
Hallo Excelfreunde,
ich möchte eine mehrzeilige Listbox mit Variablen füllen. Die Variablen werden nach durchlaufen einer Schleife gebildet und sollen in bestimmte Spalten eingetragen werden. Mein Code lautet in etwa:
Private Sub userform_Activate()
Listbox.columnCoun=3
Listbox.ColumnWidths = "90;50;50"
End Sub
Private Sub Test()
Dim i as Byte
Dim str1 as String
Dim str2 as String
Dim str3 as String
For i = 1 to 20
If Sheets(1).Cells(i,1) = "X" Then
str1= Sheets(1).Cells(i,2) & "blabla"
str2= Sheets(1).Cells(i,3) & "blabla"
str3= Sheets(1).Cells(i,4) & "blabla"
Listbox.?
End if
Next i
End Sub
Wie bekomme ich die Listbox gefüllt?
Gruß
Dieterlem

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Mehrzeilige Listbox mit strings füllen
24.02.2012 13:36:33
ransi
Hallo Dieter
Ich würds so machen:
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Private Sub UserForm_Activate()
    ListBox1.ColumnCount = 3
    ListBox1.ColumnWidths = "90;50;50"
    Call Test
End Sub



Private Sub Test()
    Dim i As Byte
    Dim str1 As String
    Dim str2 As String
    Dim str3 As String
    Dim L As Long
    Redim arrIn(0)
    For i = 1 To 20
        If Sheets(1).Cells(i, 1) = "x" Then
            str1 = Sheets(1).Cells(i, 2) & "blabla"
            str2 = Sheets(1).Cells(i, 3) & "blabla"
            str3 = Sheets(1).Cells(i, 4) & "blabla"
            Redim Preserve arrIn(L)
            arrIn(L) = Array(str1, str2, str3)
            L = L + 1
        End If
    Next i
    arrIn = WorksheetFunction.Transpose(arrIn)
    arrIn = WorksheetFunction.Transpose(arrIn)
    ListBox1.List = arrIn
End Sub


ransi
Anzeige
AW: Mehrzeilige Listbox mit strings füllen
24.02.2012 14:09:08
Dieterlem
Hallo Ransi,
vielen Dank für deine Hilfe. Das klappt soweit ganz gut. Ich habe versucht den Code soweit anzupassen dass er auch in meiner Datei funktioniert. Damit es etwas einfacher zu verstehen war habe ich ein kleines Beispiel gepostet. Mein Code ist da etwas umfangreicher. Leider schaffe ich es nicht ihn für meine Bedürfnisse anzupassen. Vieleicht kannst du mir nochmal einen Tipp geben. Hier wieder mein Beispiel:
Option Explicit
Private str1 as String
Private str2 as String
Private str3 as String
Private Sub userform_Activate()
Listbox.columnCoun=3
Listbox.ColumnWidths = "90;50;50"
Call Test1
Call Test2
End Sub
Private Sub Test1()
Dim i as Byte
Dim iSheet as Byte
For iSheet = 1 to 5
For i = 1 to 20
If Sheets(1).Cells(i,1) = "X" Then
str1= Sheets(1).Cells(i,2) & "blabla"
str2= Sheets(1).Cells(i,3) & "blabla"
str3= Sheets(1).Cells(i,4) & "blabla"
Listbox.?
End if
Next i
Next iSheet
End Sub

Private Sub Test2()
Dim i as Byte
Dim iSheet as Byte
For iSheet = 5 to 10
For i = 21 to 40
If Sheets(1).Cells(i,1) = "X" Then
str1= Sheets(1).Cells(i,2) & "blabla"
str2= Sheets(1).Cells(i,3) & "blabla"
str3= Sheets(1).Cells(i,4) & "blabla"
Listbox.?
End if
Next i
Next iSheet
End Sub

Gruß
Dieterlem
Anzeige
AW: Mehrzeilige Listbox mit strings füllen
24.02.2012 18:20:14
fcs
Hallo Dieterlem,
mir ist unklar, ob du alle Daten in den Blättern 1 bis 10, die mit "X" in Spalte A markiert sind in einer Listbox anzeigen willst, oder mit den Daten von Zeile 21 bis 40 in Blatt 5 bis 10 eine 2. Listbox füllen willst.
Wenn alles in einer Listbox angezeigt werden soll, dann sieht es wie folgt aus.
Sollen 2 Listboxen gefüllt werden, dann sollten die Zeilen zum Re-Dimensionieren des Arrays und Füllen der Listbox jeweils in den beiden Test-Prozeduren eingefügt werden.
Gruß
Franz
'Code Userform
Option Explicit
Private str1 As String
Private str2 As String
Private str3 As String
Private arrList(), L As Long
Private Sub userform_Activate()
ListBox.ColumnCount = 3
ListBox.ColumnWidths = "90;50;50"
ReDim arrList(0)
L = 0
ListBox.Clear
Call Test1
Call Test2
arrList = WorksheetFunction.Transpose(arrList)
arrList = WorksheetFunction.Transpose(arrList)
ListBox.List = arrList
Erase arrList
End Sub
Private Sub Test1()
Dim i As Byte
Dim iSheet As Byte
For iSheet = 1 To 5
With Sheets(iSheet)
For i = 1 To 20
If UCase(.Cells(i, 1)) = "X" Then
str1 = .Cells(i, 2) & "blabla"
str2 = .Cells(i, 3) & "blabla"
str3 = .Cells(i, 4) & "blabla"
ReDim Preserve arrList(L)
arrList(L) = Array(str1, str2, str3)
L = L + 1
End If
Next i
End With
Next iSheet
End Sub
Private Sub Test2()
Dim i As Byte
Dim iSheet As Byte
For iSheet = 5 To 10
With Sheets(iSheet)
For i = 21 To 40
If UCase(.Cells(i, 1)) = "X" Then
str1 = .Cells(i, 2) & "blabla"
str2 = .Cells(i, 3) & "blabla"
str3 = .Cells(i, 4) & "blabla"
ReDim Preserve arrList(L)
arrList(L) = Array(str1, str2, str3)
L = L + 1
End If
Next i
End With
Next iSheet
End Sub

Anzeige
AW: Mehrzeilige Listbox mit strings füllen
24.02.2012 13:41:56
Rudi
Hallo,
Private Sub userform_Activate()
ListBox.ColumnCount = 3
ListBox.ColumnWidths = "90;50;50"
End Sub

Private Sub Test()
Dim i As Long, arrList(), n As Integer
Dim str1 As String
Dim str2 As String
Dim str3 As String
With Sheets(1)
ReDim arrList(1 To Application.CountIf(.Range("A1:A20"), "X"), 1 To 3)
For i = 1 To 20
If .Cells(i, 1) = "X" Then
n = n + 1
arrList(n, 1) = .Cells(i, 2) & "blabla"
arrList(n, 2) = .Cells(i, 3) & "blabla"
arrList(n, 3) = .Cells(i, 4) & "blabla"
End If
Next i
End With
ListBox.List = arrList
End Sub

Gruß
Rudi
Anzeige

61 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige