Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1344to1348
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
Inhalt in Listbox finden und markieren
20.01.2014 23:00:37
Andreas
Hallo liebe Excel-User,
nach stundenlanger Suche muss ich jetzt leider mein Problem hier schildern und hoffe dazu dringend auf Eure Hilfe.....
In einem Userform (Userform1) habe ich eine Listbox (ListBox1), in die ich Daten aus einem Tabellenblatt "Kunden" mittels Makro einlese.
Das Tabellenblatt hat 5 Spalten, von denen jedoch nur die Spalten 2 bis 5 in der Listbox angezeigt werden. Die Spalte 1 (die Anrede) ist in der Listbox ausgeblendet. Zudem werden die Spaltenüberschriften aus dem Tabellenblatt "Kunden" ebenfalls in der Listbox mit angezeigt.
Da die Listbox recht lang ist suche ich eine Möglichkeit, mittels eines Textfeldes bestimmte Einträge in der Listbox zu finden.
Ich möchte also, dass bei Eingabe eines Suchbegriffes in eine Textbox (TextBox35) alle Zeilen und Spalten der Listbox nach dem Suchbegriff durchsucht werden. Gebe ich z.B. als Suchbegriff "mann" ein, dann sollen alle Einträge mit "mann" (z.B. Zimmermann, Hoffmann etc.) markiert werden.
Könnte mir jemand einen Tipp geben, wie der VBA-Code auszusehen hat ? Ich bin inzwischen echt hilflos und kenne bestimmt schon alle Suchergebnisse von Google zu diesem Thema.......... ;-(((
Danke für jede Hilfe
Andreas

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhalt in Listbox finden und markieren
20.01.2014 23:08:17
Martin
Hallo Andreas,
in so einem Fall ist es sinnvoll entweder eine Beispieldatei hochzuladen oder den VBA-Code mit ausreichender Erklärung hier zu posten. Es gibt verschiedene Arten eine ListBox mit Daten zu füllen (per RowSource oder über List) und keiner kann deinen Fehler "hellsehen".
Viele Grüße
Martin

AW: Inhalt in Listbox finden und markieren
20.01.2014 23:31:47
Andreas
Hallo Martin,
hast natürlich Recht......
Mit folgendem VBA-Code lese ich den Inhalt des Tabellenblattes "Kunden" in die Listbox1 im Userform1 ein:

Private Sub UserForm_Activate()
'INHALT LISTBOX FÜR KUNDEN AUS TABELLENBLATT 'KUNDEN' IMPORTIEREN
Worksheets("Kunden").Select
a = 1
Do Until Cells(a, 1) = ""
a = a + 1
Loop
anfang = Cells(1, 1)
ende = Cells(a, 1)
bereich = Worksheets("Kunden").Range(Cells(2, 1), Cells(a - 1, 5)).Address
ListBox1.RowSource = bereich
ListBox1.ColumnCount = 5
ListBox1.ColumnWidths = ("0 Pt;220 Pt;200 Pt;170 Pt;115 Pt")
end sub
Das Tabellenblatt "Kunden" hat folgende 5 Spaltenüberschriften :
Anrede,Vorname/Nachname, Namenszusatz, Strasse, PLZ/Ort
Als Überschriften in der Listbox1 werden nur
Vorname/Nachname, Namenszusatz, Strasse, PLZ/Ort
angezeigt, die Anrede ist ausgeblendet.
Was für Angaben kann ich noch liefern ?
Viele Grüße
Andreas

Anzeige
AW: Inhalt in Listbox finden und markieren
21.01.2014 00:06:26
Martin
Hallo Andreas,
wie gut, dass du deinen Code gepostet hast! Der Fehler liegt nicht beim Einlesen der Daten, sondern in der Darstellung der ListBox. In der Codezeile...
ListBox1.ColumnWidths = ("0 Pt;220 Pt;200 Pt;170 Pt;115 Pt")

...legst du fest, dass die erste Spalte deiner ListBox mit 0 Points Breite nicht angezeigt wird. Trage einfach einen höheren Wert ein.
Viele Grüße
Martin

AW: Inhalt in Listbox finden und markieren
21.01.2014 09:23:37
Andreas
Hallo Martin,
und dann ? Wie komme ich dann zu meiner "Suchfunktion" mittels Eingabe des Suchtextes in eine Textbox ?
Hättest Du da auch noch eine Info für mich ?
Gruß
Andreas

Anzeige
AW: Inhalt in Listbox finden und markieren
21.01.2014 10:01:53
Martin
Hallo Andreas,
da habe ich beim zweiten Anlauf anscheinend die zweite Frage vergessen. Hiermit sollte deine Suchabfrage funktionieren:
Private Sub TextBox35_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim i As Long, j As Long
Dim strLine As String
For i = 0 To ListBox1.ListCount - 1
strLine = Empty
For j = 0 To ListBox1.ColumnCount - 1
strLine = strLine & ";" & ListBox1.List(i, j)
If InStr(strLine, TextBox35.Value) > 0 Then
ListBox1.ListIndex = i
Exit Sub
End If
Next j
Next
End Sub
Auf diesem Weg wird die Klein/Großschreibung beachtet. Wenn die Groß/Kleinschreibung ignoriert werden soll, verwende folgendes Makro:
Private Sub TextBox35_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim i As Long, j As Long
Dim strLine As String
For i = 0 To ListBox1.ListCount - 1
strLine = Empty
For j = 0 To ListBox1.ColumnCount - 1
strLine = strLine & ";" & ListBox1.List(i, j)
If InStr(LCase(strLine), LCase(TextBox35.Value)) > 0 Then
ListBox1.ListIndex = i
Exit Sub
End If
Next j
Next
End Sub
Viele Grüße
Martin

Anzeige
AW: Inhalt in Listbox finden und markieren
21.01.2014 10:14:36
Martin
Hallo Andreas,
erst nachdem ich Rudis Antwort gelesen habe, ist mir aufgefallen, dass ich dich falsch verstanden habe. Ich bin zwar Rudis Meinung, hier aber die Lösung entsprechend deiner Aufgabenstellung:
Unter Berücksichtigung der Groß-/Kleinschreibung
Private Sub TextBox35_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim i As Long, j As Long
Dim strLine As String
For i = 0 To ListBox1.ListCount - 1
strLine = Empty
For j = 0 To ListBox1.ColumnCount - 1
strLine = strLine & ";" & ListBox1.List(i, j)
If InStr(strLine, TextBox35.Value) > 0 Then
ListBox1.Selected(i) = True
Else
ListBox1.Selected(i) = False
End If
Next j
Next
End Sub
Ohne Berücksichtigung der Groß-/Kleinschreibung
Private Sub TextBox35_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim i As Long, j As Long
Dim strLine As String
For i = 0 To ListBox1.ListCount - 1
strLine = Empty
For j = 0 To ListBox1.ColumnCount - 1
strLine = strLine & ";" & ListBox1.List(i, j)
If InStr(LCase(strLine), LCase(TextBox35.Value)) > 0 Then
ListBox1.Selected(i) = True
Else
ListBox1.Selected(i) = False
End If
Next j
Next
End Sub
Bitte achte darauf, dass die MultiSelect-Eigenschaft deiner ListBox auf "1 - fmMultiSelectMulti" gestellt ist!
Viele Grüße
Martin

Anzeige
AW: Inhalt in Listbox finden und markieren
21.01.2014 10:43:25
Andreas
Hallo Martin,
das ist je echt super. Deine Lösung, die Du nach dem Hinweis von Rudi gepostet hast, funktioniert genau so wie ich es mir vorgestellt habe. Vielen vielen Dank dafür........hätte ich alleine nie hinbekommen.
Eine Frage hätte ich noch, vielleicht kannst Du mir dazu noch kurz helfen.
Meine Listbox hat von der Höhe her 7 Zeilen, die angezeigt werden. Ab Zeile 8 muss ich scrollen.
Wenn ich einen Suchbegriff eingebe, wird das Ergebnis zwar gefunden, steht das Suchergebnis aber in Zeile 25, dann muss ich erst in der Listbox suchen, wo das Ergebnis steht.
Geht es irgendwie, dass die Zeile mit dem Suchbegriff in der Listbox gleich automatisch ganz oben angezeigt wird ?
Viele Grüße und bis hierher nochmals vielen Dank
Andreas

Anzeige
AW: Inhalt in Listbox finden und markieren
21.01.2014 10:47:41
Rudi
Hallo,
ungetestet:
Private Sub TextBox35_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim i As Long, j As Long
Dim strLine As String, bolFound As Boolean
For i = 0 To ListBox1.ListCount - 1
strLine = Empty
For j = 0 To ListBox1.ColumnCount - 1
strLine = strLine & ";" & ListBox1.List(i, j)
If InStr(LCase(strLine), LCase(TextBox35.Value)) > 0 Then
ListBox1.Selected(i) = True
If Not bolFound Then
ListBox1.ListIndex = i
bolFound = True
End If
Else
ListBox1.Selected(i) = False
End If
Next j
Next
End Sub

Gruß
Rudi

Anzeige
AW: Inhalt in Listbox finden und markieren
21.01.2014 11:48:40
Andreas
Hallo Rudi,
Dir auch vielen Dank, Dein VBA-Code läuft super. Allerdings wird das erste Suchergebnis immer in der 7. Zeile (also in de letzten sichtbaren Zeile) der Listbox angezeigt. An welcher Stelle müsste ich den VBA-Code ändern, dass das Suchergebnis in der zweiten Zeile angezeigt wird ?
Kann man irgendwie innerhalb der Listbox abfragen, wieviele Suchtreffer es innerhalb der Listbox gibt ?
Weiterhin danke für Eure tolle Hilfestellungen,
Andreas

AW: Inhalt in Listbox finden und markieren
21.01.2014 12:02:22
Martin
Hallo Andreas,
hast du schon meinen anderen Makrocode mit der zweiten ListBox ausprobiert? Um deine letzte Frage an Rudi zu beantworten: Mit "TopIndex" legst du die oberste Zeile der ListBox fest:
Private Sub TextBox35_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim i As Long, j As Long
Dim strLine As String, bolFound As Boolean
For i = 0 To ListBox1.ListCount - 1
strLine = Empty
For j = 0 To ListBox1.ColumnCount - 1
strLine = strLine & ";" & ListBox1.List(i, j)
If InStr(LCase(strLine), LCase(TextBox35.Value)) > 0 Then
ListBox1.Selected(i) = True
If Not bolFound Then
ListBox1.ListIndex = i
ListBox1.TopIndex = i - 1
bolFound = True
End If
Else
ListBox1.Selected(i) = False
End If
Next j
Next
End Sub
Viele Grüße
Martin

Anzeige
AW: Inhalt in Listbox finden und markieren
21.01.2014 11:50:29
Martin
Hallo Andreas,
Rudi hat deine Frage ja bereits beantwortet. Ich greife jetzt trotzdem Rudis Vorschlag auf alle Suchtreffer in einer zweiten ListBox zusammenzufassen, damit dir das Scrollen vollständig erspart wird. Bitte achte darauf, dass ListBox2 die gleiche Anzahl an "ColumnHeads" wie ListBox1 enthält (...und natürlich, dass die Breite der ListBox-Spalten ebenfalls festgelegt ist).
Private Sub TextBox35_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim i As Long, j As Long
Dim strLine As String ', bolFound As Boolean
ListBox2.Clear
For i = 0 To ListBox1.ListCount - 1
strLine = Empty
For j = 0 To ListBox1.ColumnCount - 1
strLine = strLine & ";" & ListBox1.List(i, j)
Next j
If InStr(LCase(strLine), LCase(TextBox35.Value)) > 0 Then
'            ListBox1.Selected(i) = True
'            If Not bolFound Then
'                ListBox1.ListIndex = i
'                bolFound = True
'            End If
With ListBox2
.AddItem ListBox1.List(i, 0)
For j = 1 To ListBox1.ColumnCount - 1
.List(.ListCount - 1, j) = ListBox1.List(i, j)
Next j
End With
'        Else
'            ListBox1.Selected(i) = False
End If
Next
End Sub
Hinweis: Die auskommentierten Zeilen sind für das Markieren der Suchtreffer in ListBox1 verantwortlich. Falls die Treffer-Zeilen weiterhin markiert werden sollen, kannst du die Zeilen wieder aktivieren.
Viele Grüße
Martin

Anzeige
AW: Inhalt in Listbox finden und markieren
21.01.2014 12:51:34
Andreas
Also irgendwie sind in diesem Forum alle Postings immer durcheinander, da ist es teilweise echt schwer, den Überblick darüber zu behalten, wer was in welcher Reihenfolge gepostet hat....
@Martin
Das mit "TopIndex" hat super geholfen....
Die Variante mit der zweiten Listbox ist für mich in diesem Fall nicht so günstig, weil ich keinen Platz mehr in meinem Userform habe.
Wäre es möglich, alle Inhalte der Listbox, die nicht zu dem eingegebenen Suchbegriff passen, einfach auszublenden ? Es würden dann nur noch die "Treffer" übrig bleiben, so dass ich mit nur einer Listbox arbeiten könnte und ein etwaiges Scrollen ebenfalls entfällen würde.
Danke für Eure Geduld....
Andreas

Anzeige
AW: Inhalt in Listbox finden und markieren
21.01.2014 13:49:54
Martin
Hallo Andreas,
das wäre natürlich auch eine Möglichkeit und erspart dir die zweite ListBox. So sollte es klappen:
Private Sub TextBox35_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim a As Long, i As Long, j As Long
Dim arrData() As Variant, strLine As String
a = 1
Do Until Cells(a, 1) = ""
a = a + 1
Loop
arrData() = Range(Cells(2, 1), Cells(a - 1, 5)).Value
ListBox1.RowSource = ""
ListBox1.Clear
For i = LBound(arrData, 1) To UBound(arrData, 1)
strLine = Empty
For j = LBound(arrData, 1) To UBound(arrData, 2)
strLine = strLine & ";" & arrData(i, j)
Next j
If InStr(LCase(strLine), LCase(TextBox35.Value)) > 0 Then
ListBox1.AddItem (arrData(i, 1))
For j = 1 To UBound(arrData, 2)
ListBox1.List(ListBox1.ListCount - 1, j) = arrData(i, j)
Next j
End If
Next i
End Sub
Viele Grüße
Martin

AW: Inhalt in Listbox finden und markieren
21.01.2014 14:07:45
Andreas
@Martin
Geht leider nicht, nach Eingabe des ersten Zeichens in die Textbox35 verschwinden alle Einträge aus der Listbox1.
Entferne ich dann alle Eingaben aus der Textbox35 werden Teile des Inhaltes der Listbox1 wieder eingeblendet, aber völlig durcheinander.......
Please help ;-))

AW: Inhalt in Listbox finden und markieren
21.01.2014 14:38:27
Martin
Hallo Andreas,
ich habe wirklich keine Ahnung warum das Makro bei dir nicht funktioniert. Ich habe es bei mir sogar getestet und es hat funktioniert. Da es mir aber (bei 2300 Datensätzen) zu langsam war, habe ich eine deutlich schnellere Version programmiert. Ich hoffe, dass es diesmal bei dir funktioniert:
Private Sub TextBox35_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim a As Long, i As Long, j As Long, iCounter As Long
Dim arrData() As Variant, arrTreffer As Variant
Dim strLine As String
a = 1
Do Until Cells(a, 1) = ""
a = a + 1
Loop
arrData() = Range(Cells(2, 1), Cells(a - 1, 5)).Value
ListBox1.RowSource = ""
ListBox1.Clear
ReDim arrTreffer(1 To UBound(arrData, 2), 1 To 1)
For i = LBound(arrData, 1) To UBound(arrData, 1)
strLine = Empty
For j = LBound(arrData, 1) To UBound(arrData, 2)
strLine = strLine & ";" & arrData(i, j)
Next j
If InStr(LCase(strLine), LCase(TextBox35.Value)) > 0 Then
iCounter = iCounter + 1
ReDim Preserve arrTreffer(1 To UBound(arrData, 2), 1 To iCounter)
For j = 1 To UBound(arrData, 2)
arrTreffer(j, iCounter) = arrData(i, j)
Next j
End If
Next i
If iCounter = 0 Then
Exit Sub
ElseIf iCounter = 1 Then
ListBox1.AddItem arrTreffer(1, 1)
For j = 1 To UBound(arrTreffer, 1)
ListBox1.List(0, j - 1) = arrTreffer(j, 1)
Next j
Else
arrTreffer = Application.Transpose(arrTreffer)
ListBox1.List = arrTreffer
End If
End Sub
Viele Grüße
Martin

AW: Inhalt in Listbox finden und markieren
21.01.2014 15:46:02
Martin
Hallo Andreas,
ich habe das Makro jetzt nochmals leicht überarbeitet. Bitte ersetze dein "UserForm_Activate"-Makro durch mein "UserForm_Initialize"-Makro. Für eine kurze Rückmeldung wäre ich dankbar!
Ich denke, dass jetzt alles noch etwas schneller geht:
Private Sub UserForm_Initialize()
With Sheets("Kunden")
ListBox1.RowSource = .Name & "!" & .Range(.Cells(2, 1), .Cells(.Range("A2").End(xlDown). _
Row, 5)).Address
End With
ListBox1.ColumnCount = 5
ListBox1.ColumnWidths = ("0 Pt;220 Pt;200 Pt;170 Pt;115 Pt")
End Sub
Private Sub TextBox35_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim i As Long, j As Long, iCounter As Long
Dim arrData() As Variant, arrTreffer As Variant
Dim strLine As String
With Sheets("Kunden")
arrData() = .Range(.Cells(2, 1), .Cells(.Range("A2").End(xlDown).Row, 5)).Value
End With
ReDim arrTreffer(1 To UBound(arrData, 2), 1 To 1)
For i = LBound(arrData, 1) To UBound(arrData, 1)
strLine = Empty
For j = LBound(arrData, 1) To UBound(arrData, 2)
strLine = strLine & ";" & arrData(i, j)
Next j
If InStr(LCase(strLine), LCase(TextBox35.Value)) > 0 Then
iCounter = iCounter + 1
ReDim Preserve arrTreffer(1 To UBound(arrData, 2), 1 To iCounter)
For j = 1 To UBound(arrData, 2)
arrTreffer(j, iCounter) = arrData(i, j)
Next j
End If
Next i
With ListBox1
.RowSource = ""
.Clear
If iCounter = 0 Then
Exit Sub
ElseIf iCounter = 1 Then
.AddItem arrTreffer(1, 1)
For j = 1 To UBound(arrTreffer, 1)
.List(0, j - 1) = arrTreffer(j, 1)
Next j
Else
arrTreffer = Application.Transpose(arrTreffer)
.List = arrTreffer
End If
End With
End Sub
Viele Grüße
Martin

AW: Inhalt in Listbox finden und markieren
21.01.2014 20:10:22
Andreas
Hi Martin,
nach soviel VBA-Input im Laufe des Tages bin ich eben dazu gekommen, mir die vielen Lösungsvorschläge nochmal genau anzuschauen. Dein zuletzt geänderter VBA-Code ist der absolute Renner und genau das, was ich gesucht habe. Das hätte ich alleine NIEMALS so hinbekommen. Daher meinen herzlichsten Dank für die Mühe und Zeit, die Du in meine Problemlösung investiert hast. Ebenfalls auch einen Dank an alle anderen, die hier mitgewirkt haben.
Eins ist mir bei der Ausführung der Suche noch aufgefallen : ich habe in meiner Listbox in der obersten Zeile eine Überschrift drin (sind die Überschriften aus der Tabelle "Kunden"). Wenn ich einen Suchbegriff eingebe, verschwindet die Überschrift und bleibt dann auch verschwunden.
Kann man irgendwo in dem für mich völlig undurchsichtigem VBA-Code festlegen, dass er erst ab Zeile zwei mit dem Suchen anfangen soll ? Ich würde gerne meine Überschrift behalten ;-))
Viele Grüße
Andreas

AW: Inhalt in Listbox finden und markieren
21.01.2014 20:36:41
Martin
Hallo Andreas,
ja, das ist kein Problem. So sollte es funktionieren:
Private Sub TextBox35_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim i As Long, j As Long, iCounter As Long
Dim arrData() As Variant, arrTreffer As Variant
Dim strLine As String
With Sheets("Kunden")
arrData() = .Range(.Cells(2, 1), .Cells(.Range("A2").End(xlDown).Row, 5)).Value
End With
ReDim arrTreffer(1 To UBound(arrData, 2), 1 To 1)
For i = LBound(arrData, 1) To UBound(arrData, 1)
strLine = Empty
For j = LBound(arrData, 1) To UBound(arrData, 2)
strLine = strLine & ";" & arrData(i, j)
Next j
If InStr(LCase(strLine), LCase(TextBox35.Value)) > 0 Then
iCounter = iCounter + 1
ReDim Preserve arrTreffer(1 To UBound(arrData, 2), 1 To iCounter)
For j = 1 To UBound(arrData, 2)
arrTreffer(j, iCounter) = arrData(i, j)
Next j
End If
Next i
With ListBox1
.RowSource = ""
.Clear
If iCounter = 1 Then
.AddItem arrTreffer(1, 1)
For j = 1 To UBound(arrTreffer, 1)
.List(0, j - 1) = arrTreffer(j, 1)
Next j
ElseIf iCounter > 1 Then
arrTreffer = Application.Transpose(arrTreffer)
.List = arrTreffer
End If
.AddItem 0, 0
For j = 0 To 4
.List(0, j) = Sheets("Kunden").Cells(2, j + 1)
Next
.TopIndex = 0
End With
End Sub
Viele Grüße
Martin

AW: Inhalt in Listbox finden und markieren
21.01.2014 21:15:09
Andreas
Nee, geht leider nicht, die Überschrift verschwindet noch immer. Zusätzlich bleibt bei Eingabe eines Suchbegriffes nun immer die erste Zeile unter der Überschriftenreihe mit stehen.
Bestimmt was gaaaaaaanz einfaches........möglicher Weise ;-))

AW: Inhalt in Listbox finden und markieren
21.01.2014 22:54:43
Martin
Hallo Andreas,
kann es sein, dass du die ColumnHeads-Eigenschaft der ListBox1 auf "True" gestellt hast? Leider funktioniert das bei Excel nur, wenn die ListBox über RowSource an die Tabelle gebunden ist. Mit unserer "Filterfunktion" ist das leider NICHT möglich (bzw. nur beim Starten des UserForms). Bitte setze die ColumnHeads-Eigenschaft auf "False". Mit folgendem Code bleibt in der ersten Zeile immer die Überschrift stehen, aber leider nicht hervorgehoben. Es geht wirklich nicht anders!
Private Sub TextBox35_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim i As Long, j As Long, iCounter As Long
Dim arrData() As Variant, arrTreffer As Variant
Dim strLine As String
With Sheets("Kunden")
arrData() = .Range(.Cells(2, 1), .Cells(.Range("A2").End(xlDown).Row, 5)).Value
End With
ReDim arrTreffer(1 To UBound(arrData, 2), 1 To 1)
For i = LBound(arrData, 1) To UBound(arrData, 1)
strLine = Empty
For j = LBound(arrData, 1) To UBound(arrData, 2)
strLine = strLine & ";" & arrData(i, j)
Next j
If InStr(LCase(strLine), LCase(TextBox35.Value)) > 0 Then
iCounter = iCounter + 1
ReDim Preserve arrTreffer(1 To UBound(arrData, 2), 1 To iCounter)
For j = 1 To UBound(arrData, 2)
arrTreffer(j, iCounter) = arrData(i, j)
Next j
End If
Next i
With ListBox1
.RowSource = ""
.Clear
If iCounter = 1 Then
.AddItem arrTreffer(1, 1)
For j = 1 To UBound(arrTreffer, 1)
.List(0, j - 1) = arrTreffer(j, 1)
Next j
ElseIf iCounter > 1 Then
arrTreffer = Application.Transpose(arrTreffer)
.List = arrTreffer
End If
.AddItem 0, 0
For j = 0 To 4
.List(0, j) = Sheets("Kunden").Cells(1, j + 1)
Next
.TopIndex = 0
End With
End Sub
Private Sub UserForm_Initialize()
With Sheets("Kunden")
ListBox1.RowSource = .Name & "!" & .Range(.Cells(1, 1), .Cells(.Range("A2").End(xlDown). _
Row, 5)).Address
End With
End Sub
Ich hoffe, dass jetzt alles zu deiner Zufriedenheit klappt!
Viele Grüße
Martin

AW: Inhalt in Listbox finden und markieren
21.01.2014 23:39:28
Andreas
Jo, ColumnHeads-Eigenschaft der ListBox1 war auf "True" gestellt.
Jetzt hab ich Dich auch genug gequält mit meiner Listbox. Wahnsinn wie man bei so einem VBA-Code den Überblick behalten kann, aber Du machst das ja offensichtlich nicht zum ersten Mal..........
Also, nochmal vielen Dank für die tolle Hilfe. Falls Du auch mal ne Frage hast, wie man z.B. ne Message-Box hinbekommt, da könnte ich dann auch helfen [grins].
Schöne Grüße
Andreas

AW: Inhalt in Listbox finden und markieren
22.01.2014 11:17:36
Martin
Hallo Andreas,
so ganz uneigennützig sind die meisten Helfer hier nicht unterwegs: Zumindest ich hoffe durch die Aufgabenstellung der Hilfe-Suchenden auch etwas zu lernen, das mir bislang unbekannt war. Zum Beispiel habe ich bei dir gelernt, dass .RowSource = "" anstelle von .Clear verwendet werden kann (...du kannst also die Zeile mit dem "Clear" löschen). Ebenso war mir vorher nicht bekannt, dass die ColumnHeads-Eigenschaft nur funktioniert, wenn die ListBox per RowSource an die Tabelle gebunden ist. Du hast eine kleine Erleichterung beim Arbeiten, ich habe etwas dazugelernt. Also haben wir beide etwas davon!
Viele Grüße
Martin

AW: Inhalt in Listbox finden und markieren
21.01.2014 09:52:04
Rudi
Hallo,
davon hast du doch garnichts. Auch wenn die Begriffe markiert sind, musst du noch immer wie wild durch die LBx scrollen.
Sinnvoller ist es, die Fundzeilen in einer zweiten LBx auszugeben.
Gruß
Rudi

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige