Makro Excel Suche

  • #1
B

Billy

Guest
hi

ich müsste mal einen kleinen gedankensanstoss bekommen. ich komm net weiter =(

ich versuche so eben eine kleine excel suche zu progn (selbststadium)

ich geb zumbeispiel in B2 in* ein und das makro durchsuchst dann alle zelleninhalt welche einen inhalt aufweisen (die leeren machen ja keinen sinn) nach in und z.B. inneren durchsucht

also das wort und die zeichen nachher

kann mir wer nen tipp geben wie ich alle zellen überprüfen kann, und die möglichst schnell?

danke

billy
 
  • #2
Hallo billy,

einen Rumpf bzgl Suchen hab ich dir mal zusammengestellt.

Für die Eingabe-Interpretation bzgl Meta-Zeichen (also z.B.Stern) mußt Du dir selbst eine Methode stricken. Das kann die Find-Methode nicht.

Aber sonst ist es das shnellste, was Excel zum suchen bereitstellt.

Wenn Du z.B. einen Suchbegriff->in*halb* hast, könntest Du daraus 2 Suchläufe machen. Der erste sucht nach->in' am Anfang. Der zweite sucht nach->halb'. Wenn eine Fundstellen in beiden Läufe gefunden wurde ist das ein Treffer.

Gruß Matjes :)

Code:
Sub AlleZellenSuchenDieMitSuchbegriffAnfangen()

  Const c_SUCHBEGRIFF As String = in
  
  Dim s_text As String, r As Range, s_Suchbegriff As String
  Dim Zelle As Range, ersteAdresse As String, ws As Worksheet
  Dim ret As Integer
  
  Set ws = ActiveSheet
  
 ->### Hier könntest Du den Inhalt von B2 laden , aber ohne Stern->###
  
  s_Suchbegriff = c_SUCHBEGRIFF
  
 ->Such-Range alle benutzten Zellen
  Set r = ws.Range(ws.Cells(1, 1), _
                   ws.Cells.SpecialCells(xlCellTypeLastCell))

 ->erste Suche
  Set Zelle = r.Find(What:=c_SUCHBEGRIFF, _
                    LookIn:=xlValues, _
                    Lookat:=xlPart, _
                    SearchOrder:=xlByColumns, _
                    SearchDirection:=xlNext, _
                    MatchCase:=True)->Groß/Kleinschreibung beachten
  If Not Zelle Is Nothing Then
    ersteAdresse = Zelle.Address
    Do
     ->Zellinhalt als String
      s_text = Zelle.Value
     ->fängt mit Suchbegriff an ?
      If Left(s_text, Len(s_Suchbegriff)) = s_Suchbegriff Then
        Zelle.Select
        ret = MsgBox( _
                Fundstelle  & Zelle.Address & vbLf & _
                Wollen Sie weitersuchen ?, _
                vbDefaultButton1 + vbQuestion + vbYesNo)
        If ret = vbNo Then Exit Sub
      End If
     ->nächste Suche
      Set Zelle = r.FindNext(Zelle)
    Loop While Not Zelle Is Nothing And Zelle.Address <> ersteAdresse
  End If
Aufraeumen:
  Set ws = Nothing: Set r = Nothing: Set Zelle = Nothing
End Sub
 
  • #3
danke schön

werde heute noch kurz anfangen und morgen weiter machen ^^

aber fürs erste danke ^^
 
  • #4
oke ich hab jetzt das so hingekriegt

gibts auch ne möglichkeit dass wenn ich jetzt F6 drücke (oder so) dass die nächste fundstelle selektiert wird oder ist das nur möglich wenn ich den knopf wider drücke?

mfg billy
 
Thema:

Makro Excel Suche

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben