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