Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Suchfunktion (Mehrfach-Findung)q

Betrifft: Suchfunktion (Mehrfach-Findung)q von: Chris
Geschrieben am: 09.04.2014 14:38:40

Hallo Forumsgemeinde,

ich habe in meinem Projekt eine Suchfunktion eingebaut. Diese funktioniert auch soweit. Allerdings kann es vorkommen, dass ein Wert mehrfach vorhanden ist. Leider wird in diesem Fall nur der erste Treffer angegeben.

Ich denke mit meinem Code wird es nicht möglich sein, aber vielleicht kennt ja jemand von euch eine "vernünfitge" Herangehensweise.

Vorab vielen Dank für die Unterstützung.

Code

   Dim rngZelle As Range
   With Worksheets("Eingaben")
      Set rngZelle = .Columns(1).Find(cboSucheUser, lookat:=xlWhole)
      If Not rngZelle Is Nothing Then
       
         txtSucheUser = .Cells(rngZelle.Row, 3)
      End If
   End With

  

Betrifft: AW: Suchfunktion (Mehrfach-Findung)q von: Hajo_Zi
Geschrieben am: 09.04.2014 14:44:44

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)
        '   von Peter Haserodt
            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
GrußformelHomepage


  

Betrifft: AW: Suchfunktion (Mehrfach-Findung)q von: Chris
Geschrieben am: 09.04.2014 15:06:28

Hallo Hajo,


danke für deine schnelle Hilfe.

Leider passiert hier aber nichts anderes als zuvor auch. Bei dir wird in meiner Datentabelle der erste gefundene Wert rot hinterlegt, während bei mir in ein Textfeld in der Userform der erste gefundene Wert geschrieben wird.

Mein Ziel wäre in diesem Textfeld mehere Werte auszugeben...von mir aus auch in mehreren Textfeldern, falls nicht anders möglich.

Falls dein Code hierzu angepasst werden könnte, bitte entschuldige, aber dafür reichen meine Kenntnisse nicht aus.

Zum leichteren Verständnis / Hilfeleistung findet ihr hier meine Datei:

https://www.herber.de/bbs/user/90061.xlsm


Nochmals vielen Dank!

Gruß


  

Betrifft: AW: Suchfunktion (Mehrfach-Findung)q von: Chris
Geschrieben am: 14.04.2014 15:02:50

Hallo zusammen,

hat vielleicht noch jemand von euch eine Idee bzw. kann mich bzgl. des Beitrags von Hajo eines Besseren belehren?

viele Grüße


  

Betrifft: AW: Suchfunktion (Mehrfach-Findung)q von: Chris
Geschrieben am: 14.04.2014 15:06:01

sorry für den Doppelpost. Habe vergessen den Haken für offen zu setzen...