Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1208to1212
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
Inhaltsverzeichnis

Listbox nach Vorgabe Nachtrag

Listbox nach Vorgabe Nachtrag
Volker
Hallo an alle,
mir wurde freundlicherweise folgender Code zur Verfügung gestellt, welcher auch nach meinen Vorgaben
funktioniert. Danke nochmals!!!!!!!!!
Allerdings habe ich mich so auf die Namenssuche (über Anfangsbuchstaben) eingeschossen, das mir der Rest durchgegengen ist.
Hier zu meiner Frage:
Die Daten werden wie gesagt wunschgemäß von Spalte B bis Spalte P in die Listbox übernommen.
Wie muß ich den Code Umstellen das auch die Spalte A in der Listbox angezeigt wird?
Hier der Code:

Private Sub CommandButton4_Click()
'Textbox1 ist die Textbox in die der(die) Anfangsbuchstabe(n) eingegeben werden
'Wird der Textboxinhalt gelöscht, werden alle Daten gelistet.
'in der 1. Zeile werden die
Const Zeile1 As Long = 3 'Zeile mit den Spaltentiteln oder 1. Listenzeile
Dim sSuchwert As String
Dim wksData As Worksheet
Dim Spalte As Long, Zeile As Long, iJ As Long, iI As Long, arrListe()
Set wksData = Worksheets("Tabelle1")
sSuchwert = LCase(Me.TextBox1.Value)
With wksData
'Trefferzeilen ermitteln
iI = 0
For Zeile = Zeile1 To .Cells(.Rows.Count, 2).End(xlUp).Row
If LCase(Left(.Cells(Zeile, 2).Value, Len(sSuchwert))) = sSuchwert _
Or sSuchwert = "" Or Zeile = Zeile1 Then
iI = iI + 1
End If
Next
If iI > 0 Then
'Array für Listboxdaten dimensionieren
ReDim arrListe(1 To iI, 1 To 16) '16 = Anzahl Spalten die eingelesen werden sollen + _
1 Spalte für Zeilennummer. Die Zeilennummer mit einzulesen ist dann wichtig, wenn _
man auf die Tabellenzeile zugreifen will, deren Daten in der Listbox gewählt wurden
'Daten in Array einlesen
iI = 0
For Zeile = Zeile1 To .Cells(.Rows.Count, 2).End(xlUp).Row
If LCase(Left(.Cells(Zeile, 2).Value, Len(sSuchwert))) = sSuchwert _
Or sSuchwert = "" Or Zeile = Zeile1 Then
iI = iI + 1
iJ = 0 'Spaltenzähler des Arrays zurücksetzen
For Spalte = 1 To 16
Select Case Spalte
'Die Spaltennummern in den Case Anweisungen entsprechend anpassen
Case 2 To 6, 16 'Zellinhalt so einlesen, wie in Tabelle formatiert/dargestellt
iJ = iJ + 1
arrListe(iI, iJ) = .Cells(Zeile, Spalte).Text
Case 7 To 15 'Wert der Zelle einlesen
iJ = iJ + 1
arrListe(iI, iJ) = .Cells(Zeile, Spalte).Value
Case Else
'Spalte nicht einlesen
End Select
Next
'Zeilennummer in letzte Spalte der Listboxdaten einlesen
iJ = iJ + 1
arrListe(iI, iJ) = Zeile
End If
Next
Me.ListBox1.List = arrListe()
Erase arrListe
End If
End With
End Sub

Danke für's lesen
Gruss Volker

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

Betreff
Benutzer
Anzeige
AW: Listbox nach Vorgabe Nachtrag
26.04.2011 14:18:06
Rudi
Hallo,
Private Sub CommandButton4_Click()
'Textbox1 ist die Textbox in die der(die) Anfangsbuchstabe(n) eingegeben werden
'Wird der Textboxinhalt gelöscht, werden alle Daten gelistet.
'in der 1. Zeile werden die
Const Zeile1 As Long = 3 'Zeile mit den Spaltentiteln oder 1. Listenzeile
Dim sSuchwert As String
Dim wksData As Worksheet
Dim Spalte As Long, Zeile As Long
Dim oListe As Object, arrTmp(1 To 17)
Set oListe = CreateObject("Scripting.Dictionary")
Set wksData = Worksheets("Tabelle1")
sSuchwert = LCase(Me.TextBox1.Value)
With wksData
For Zeile = Zeile1 To .Cells(.Rows.Count, 2).End(xlUp).Row
If LCase(Left(.Cells(Zeile, 2).Value, Len(sSuchwert))) = sSuchwert _
Or sSuchwert = "" Or Zeile = Zeile1 Then
For Spalte = 1 To 16
Select Case Spalte
Case 1 To 6, 16 'Zellinhalt so einlesen, wie in Tabelle formatiert/dargestellt
arrTmp(Spalte) = .Cells(Zeile, Spalte).Text
Case 7 To 15 'Wert der Zelle einlesen
arrTmp(Spalte) = .Cells(Zeile, Spalte).Value
End Select
Next
'Zeilennummer in letzte Spalte der Listboxdaten einlesen
arrTmp(UBound(arrTmp)) = Zeile
oListe(Zeile) = arrTmp
End If
Next
End With
'Listbox füllen
If oListe.Count > 1 Then
Me.ListBox1.List = _
WorksheetFunction.Transpose(WorksheetFunction.Transpose(oListe.items))
End If
End Sub

Gruß
Rudi
Anzeige
AW: Listbox nach Vorgabe Nachtrag
26.04.2011 14:29:38
Volker
Danke Rudi
funktioniert wie gewünscht.
Gruß
Volker

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige