Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
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

Suche per VBA

Suche per VBA
23.07.2018 08:46:30
Ing.
Kann mir jemand behilflich sein? Die folgende Suche liefert leider nur ein Ergebnis, sollte aber alle Datensätze in einer Listbox anzeigen die den Kriterien entsprechen.
Ich wäre für einen Tipp sehr dankbar.
Tom
Private Sub CommandButton11_Click()
Dim c As Range
Dim rngBereich As Range
Dim lngAnzahl As Long
Dim strFirst As String
With Sheets("Stammdaten")
Set rngBereich = .Columns("A:Z")
Set c = rngBereich.Find(Suche, LookIn:=xlValues, lookat:=xlPart)
If Not c Is Nothing Then
strFirst = c.Address
Do
ListBox2.Clear
ListBox2.AddItem .Cells(c.Row, 9)
lngAnzahl = ListBox2.ListCount
ListBox2.List(lngAnzahl - 1, 1) = .Cells(c.Row, 1)
ListBox2.List(lngAnzahl - 1, 2) = .Cells(c.Row, 2)
ListBox2.List(lngAnzahl - 1, 3) = .Cells(c.Row, 3)
ListBox2.List(lngAnzahl - 1, 4) = .Cells(c.Row, 8)
Set c = rngBereich.FindNext(c)
Loop While Not c Is Nothing And c.Address  strFirst
End If
End With
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Suche per VBA
23.07.2018 08:52:23
Hajo_Zi
vom Prinzip so
Sub Find_mehrmals()
Dim Rafound As Range
Dim FirstAddress As String
Dim Search As String
Dim LoLetzte As Long
Dim LoI As Long
Dim ByMldg As Byte
Search = Worksheets("Tabelle2").Range("A1")
With Worksheets("Tabelle1")
LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
Set Rafound = .Range("A1:A" & LoLetzte).Find(Search, .Range("A" & LoLetzte), ,  _
xlWhole, , xlNext)
If Not Rafound Is Nothing Then
If MsgBox("Gefunden in Zelle " & Rafound.Address(0, 0) & " ist dies richt  _
richtige Zelle !!!" _
, vbYesNo + vbQuestion, "Abfrage") = 6 Then
Rafound.Interior.ColorIndex = 3
Else
FirstAddress = Rafound.Address
Do
Set Rafound = .Range("A1:A" & LoLetzte).FindNext(Rafound)
If Rafound.Address = FirstAddress Then Exit Sub
If MsgBox("Gefunden in Zelle " & Rafound.Address(0, 0) & " ist dies  _
richt richtige Zelle !!!" _
, vbYesNo + vbQuestion, "Abfrage") = 6 Then
Rafound.Interior.ColorIndex = 3
Exit Do
End If
If Rafound.Row = LoLetzte Then Exit Do
LoI = LoI + 1
Loop
End If
End If
End With
Set Rafound = Nothing
End Sub
Die meisten bauen Deine Datei nicht nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Die meisten möchten es am Original testen um den gleichen Fehler zu erhalten.
Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Muster*, Test*, Mappe*, Beispiel*, Fehler*, Kalender*, UserForm* usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.
Es sollte ein aussagekräftiger Name sein.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)

Anzeige
AW: Suche per VBA
23.07.2018 08:52:29
Hajo_Zi
vom Prinzip so
Sub Find_mehrmals()
Dim Rafound As Range
Dim FirstAddress As String
Dim Search As String
Dim LoLetzte As Long
Dim LoI As Long
Dim ByMldg As Byte
Search = Worksheets("Tabelle2").Range("A1")
With Worksheets("Tabelle1")
LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
Set Rafound = .Range("A1:A" & LoLetzte).Find(Search, .Range("A" & LoLetzte), ,  _
xlWhole, , xlNext)
If Not Rafound Is Nothing Then
If MsgBox("Gefunden in Zelle " & Rafound.Address(0, 0) & " ist dies richt  _
richtige Zelle !!!" _
, vbYesNo + vbQuestion, "Abfrage") = 6 Then
Rafound.Interior.ColorIndex = 3
Else
FirstAddress = Rafound.Address
Do
Set Rafound = .Range("A1:A" & LoLetzte).FindNext(Rafound)
If Rafound.Address = FirstAddress Then Exit Sub
If MsgBox("Gefunden in Zelle " & Rafound.Address(0, 0) & " ist dies  _
richt richtige Zelle !!!" _
, vbYesNo + vbQuestion, "Abfrage") = 6 Then
Rafound.Interior.ColorIndex = 3
Exit Do
End If
If Rafound.Row = LoLetzte Then Exit Do
LoI = LoI + 1
Loop
End If
End If
End With
Set Rafound = Nothing
End Sub
Die meisten bauen Deine Datei nicht nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Die meisten möchten es am Original testen um den gleichen Fehler zu erhalten.
Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Muster*, Test*, Mappe*, Beispiel*, Fehler*, Kalender*, UserForm* usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.
Es sollte ein aussagekräftiger Name sein.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)

Anzeige
AW: du loescht immer wieder
23.07.2018 09:04:57
hary
Moin
Ich wuerde mal sagen hier liegt der Fehler.
Do
ListBox2.Clear

damit loescht die die Eintraege. Nur der letzte gefundene wird angezeigt. Da kann es nur einen geben.
ListBox2.Clear gehoert am Anfang vom Code.
gruss hary
AW: du loescht immer wieder
23.07.2018 09:10:30
hary
Moin
Ich wuerde mal sagen hier liegt der Fehler.
Do
ListBox2.Clear

damit loescht die die Eintraege. Nur der letzte gefundene wird angezeigt. Da kann es nur einen geben.
ListBox2.Clear gehoert am Anfang vom Code.
gruss hary
AW: du loescht immer wieder
23.07.2018 09:16:11
hary
Moin
Ich wuerde mal sagen hier liegt der Fehler.
Do
ListBox2.Clear

damit loescht die die Eintraege. Nur der letzte gefundene wird angezeigt. Da kann es nur einen geben.
ListBox2.Clear gehoert am Anfang vom Code.
gruss hary
Anzeige
AW: du loescht immer wieder
23.07.2018 10:44:33
Ing.
Danke - eh klar, aber immer drüber gelesen!
Vielen Dank!!!
GELÖST

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige