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

11 spaltige Listbox ?

11 spaltige Listbox ?
15.02.2004 14:16:30
Jörg
Hallo,
ich möchte anhand eines gesuchten Begriffs eine Listbox füllen.
Sofern ich diese Listbox mit max. 10 Spalten verwende, ist alles OK. Sobald ich Nun möchte ich jedoch z.B. 12 Spalten verwenden möchte, funktionierts nicht mehr. Habt Ihr einen Tip zur Lösung.

Private Sub UserForm_Initialize()
Dim Found As Range
Dim FirstAddress As String, Search As String
Dim LoLetzte As Long, LoI As Long
Dim ZuDurchsuchendesBlatt As Variant, ZuDurchsuchendeSpalte As Variant
Dim Suchbeginn As Variant, Suchbereich As Variant, Suchende As Variant
ZuDurchsuchendesBlatt = UserForm3.ComboBox1.Value
ZuDurchsuchendeSpalte = Application.WorksheetFunction _
.Match(UserForm3.ComboBox2.Value, Sheets(ZuDurchsuchendesBlatt).Range("2:2"), 0)
Suchende = Chr(ZuDurchsuchendeSpalte + 64) & 65536
If ["Suchende"] = "" Then
LoLetzte = ["Suchende"].End(xlUp).Row
Else
LoLetzte = 65536
End If
Suchbereich = Chr(ZuDurchsuchendeSpalte + 64) & 3 & ":" & Chr(ZuDurchsuchendeSpalte + 64) & LoLetzte
Suchbeginn = Chr(ZuDurchsuchendeSpalte + 64) & 3
Search = UserForm3.TextBox1.Value 'InputBox("Welcher Begriff wird gesucht ?")
If Search = "" Then Exit Sub
With ListBox1
With Sheets(ZuDurchsuchendesBlatt).Range(Suchbereich)
Set Found = .Find(Search, Sheets(ZuDurchsuchendesBlatt).Range(Suchbeginn), , xlPart, , xlNext)
If Found Is Nothing Then Exit Sub  'falls nix gefunden wird sub verlassen
FirstAddress = Found.Address
ListBox1.AddItem Format(Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 2), "0000#")      ' Spalte B
ListBox1.List(LoI, 1) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 3)              ' Spalte C
ListBox1.List(LoI, 2) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 4)             ' Spalte D
ListBox1.List(LoI, 3) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 5)             ' Spalte E
ListBox1.List(LoI, 4) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 6)             ' Spalte F
ListBox1.List(LoI, 5) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 7)             ' Spalte G
ListBox1.List(LoI, 6) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 8)             ' Spalte H
ListBox1.List(LoI, 7) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 9)             ' Spalte I
ListBox1.List(LoI, 8) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 10)            ' Spalte J
ListBox1.List(LoI, 9) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 11)            ' Spalte K
'Ab hier funktionierts nicht mehr
ListBox1.List(LoI, 10) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 12)           ' Spalte L
ListBox1.List(LoI, 11) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 13)           ' Spalte M
ListBox1.List(LoI, 12) = Found.Row
LoI = LoI + 1
Do
Set Found = .FindNext(Found)
If Found.Address = FirstAddress Then Exit Sub
ListBox1.AddItem Format(Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 2), "0000#")    ' Spalte B
ListBox1.List(LoI, 1) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 3)              ' Spalte C
ListBox1.List(LoI, 2) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 4)              ' Spalte D
ListBox1.List(LoI, 3) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 5)              ' Spalte E
ListBox1.List(LoI, 4) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 6)              ' Spalte F
ListBox1.List(LoI, 5) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 7)              ' Spalte G
ListBox1.List(LoI, 6) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 8)              ' Spalte H
ListBox1.List(LoI, 7) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 9)              ' Spalte I
ListBox1.List(LoI, 8) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 10)             ' Spalte J
ListBox1.List(LoI, 9) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 11)             ' Spalte K
'Ab hier funktionierts nicht mehr
ListBox1.List(LoI, 10) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 12)           ' Spalte L
ListBox1.List(LoI, 11) = Sheets(ZuDurchsuchendesBlatt).Cells(Found.Row, 13)           ' Spalte M
ListBox1.List(LoI, 12) = Found.Row
If Found.Row = LoLetzte Then Exit Sub
LoI = LoI + 1
Loop While Not Found Is Nothing
End With
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 11 spaltige Listbox ?
15.02.2004 14:43:43
Hajo_Zi
Hallo Jörg
mit AddItem kannst Du max. 10 Spalten zuweisen, darüber mußt Du es mit gebunden Listen machen.
z.b. so

Private Sub UserForm_Activate()
Dim rngSource As Object
Dim intColums As Integer
ListBox1.Tag = 1
Set rngSource = Range("A1").CurrentRegion
' Die oberste Zeile enthaelt die Feldnamen.
' Diese brauchen wir nur dort um die Columnheader darzustellen,
' aber nicht fuer die Listboxeintraege.
' Also den Datenbereich um die Erste Zeile reduzieren.
Set rngSource = rngSource.Offset(1, 0).Resize(rngSource.Rows.Count - 1, rngSource.Columns.Count)
' Spaltenanzahl des Datenbereichs ermitteln.
With Me.ListBox1
.ListStyle = fmListStyleOption      ' Auswahlfeld zu Beginn der Zeile
' von Peter Haserodt
' nur eine Auswahl, bei .ListStyle = fmListStyleOption Optionbutton in Listbox
'.MultiSelect = fmMultiSelectSingle
' mehrere können ausgewählt werden,.ListStyle = fmListStyleOption checkboxen in Listbo
.MultiSelect = fmMultiSelectMulti
'.MultiSelect = fmMultiSelectExtended
' gibt eigentlich nur bei Liststyle Plain einen Sinn, funzt aber auch anders.
' Dies bewirkt, dass mit Shift und Strg Tasten  eine Mehrfachauswahl getroffen
' werden kann
.ColumnCount = 3
.ColumnHeads = True
.RowSource = rngSource.Address
End With
Set rngSource = Nothing
ListBox1.Tag = ""
End Sub


Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro und Excel Version XP Pro


Anzeige
OT: Ganz nebenbei...
15.02.2004 14:47:59
Boris
Hi Jörg,
...schau dir doch mal die Cells-Eigenschaft an - dann kannst du dir das Buchstabengebastel mit "Chr(...+64)" etc... sparen - und es wird etwas transparenter.
Grüße Boris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige