Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
756to760
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ListBox befüllen

ListBox befüllen
27.04.2006 11:51:50
otto
Hallo,
ich verwende folgenden Code (aus dem Forum)um eine Listbox nach Änderung einer Textbox zu befüllen.
Ich möchte nun wenn möglich, diese Listbox 2-spaltig haben und in der 2. Spalte den Eintrag aus Spalte 8 einfügen. Wie kann ich das machen? Habe schon viel herumprobirt es aber nicht hinbekommen.

Private Sub TextBox1_Change()
TextBox2 = TextBox1
Dim arr() As Variant
Dim index As Integer
x = Range("C65536").End(xlUp).Row
If TextBox1.Value = "" Then
ListBox1.RowSource = "C5:C" & x
Exit Sub
End If
ListBox1.RowSource = ""
ListBox1.Clear
For index = 5 To x
If LCase(Left(Cells(index, 3), Len(TextBox1))) = LCase(TextBox1) Then
If Sheets("Tabelle1").Cells(index, 3) <> "" Then
On Error Resume Next
ReDim Preserve arr(0, 0 To iCount)
arr(0, iCount) = Cells(index, 3)
iCount = iCount + 1
ListBox1.Column = arr
End If
End If
Next
End Sub

gruß otto

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox befüllen
27.04.2006 12:22:27
Uduuh
Hallo,
ungetestet, sollte aber klappen:

Private Sub TextBox1_Change()
TextBox2 = TextBox1
Dim arr() As Variant
Dim index As Integer
x = Range("C65536").End(xlUp).Row
If TextBox1.Value = "" Then
Listbox1.RowSource = "C5:C" & x
Exit Sub
End If
Listbox1.RowSource = ""
Listbox1.Clear
For index = 5 To x
If LCase(Left(Cells(index, 3), Len(TextBox1))) = LCase(TextBox1) Then
If Sheets("Tabelle1").Cells(index, 3) <> "" Then
On Error Resume Next
ReDim Preserve arr(0 To 1, 0 To icount)
arr(0, icount) = Cells(index, 3)
arr(1, icount) = Cells(index, 8)
icount = icount + 1
End If
End If
Next
Listbox1.ColumnCount = 2
Listbox1.List = arr
End Sub

Gruß aus’m Pott
Udo

Anzeige
AW: ListBox befüllen
27.04.2006 13:49:46
otto
Hi Udo,
sorry, funktioniert noch nicht so richtig. es werden nur 2 Einträge angezeigt.
Außerdem stehen die Namen(index3)nebeneinander und nicht untereinander.
Wenn zum Bsp. 10 Eintrahe mit "h" beginnen, sollen in der Listbox auch 10 Einträge erscheinen.
Was muss ich da ändern?
otto
AW: ListBox befüllen
27.04.2006 14:24:47
u_
Hallo,
versuchs mal so:
arr=worksheetfunction.transpose(arr)
listbox1.list=arr
Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)
AW: ListBox befüllen
28.04.2006 06:37:56
otto
Hi,
funktioniert auch nicht so richtig.
Habe mal die Tabelle hochgeladen, mit den jetzigen 2 Listboxen.
https://www.herber.de/bbs/user/33202.xls
Gruß otto
Anzeige
AW: ListBox befüllen
28.04.2006 10:07:54
u_
Hallo,
meinst du das so?

Private Sub TextBox1_Change()
TextBox2 = TextBox1
Dim arr() As Variant, Tmp As Variant, wks As Worksheet
Dim index As Integer
Set wks = Sheets("Tabelle1")
x = wks.Range("C65536").End(xlUp).Row
ListBox1.RowSource = ""
Tmp = wks.Range(Cells(5, 3), Cells(x, 8))
x = x - 4
If TextBox1.Value = "" Then
ReDim arr(0 To 1, 0 To x - 1)
For index = 1 To UBound(Tmp, 1)
arr(0, index - 1) = Tmp(index, 1)
arr(1, index - 1) = Tmp(index, 6)
Next
arr = WorksheetFunction.Transpose(arr)
ListBox1.List = arr
Else
For index = 1 To UBound(Tmp, 1)
If LCase(Left(Tmp(index, 1), Len(TextBox1))) = LCase(TextBox1) Then
ReDim Preserve arr(0 To 1, 0 To icount)
arr(0, icount) = Tmp(index, 1)
arr(1, icount) = Tmp(index, 2)
icount = icount + 1
End If
Next
End If
If icount > 0 Then
arr = WorksheetFunction.Transpose(arr)
ListBox1.List = arr
End If
End Sub
Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)
Anzeige
Danke an u_ - ListBox befüllen
28.04.2006 11:55:39
otto
Genau so meinte ich es, besten Dank
otto

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige