Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Suchmaske mit Weitersuchen (VBA)
#1
Hallo zusammen

Ich verwende folgende Suchmaske:
Code:
Sub Suche()
Dim rngFind As Range
Dim strTitel As String
strTitel = InputBox("Suchbegriff:", "Suchbegriff eingeben", , 5, 5)
Set rngFind = Columns("A:L").Find(strTitel, _
LookIn:=xlValues)
If Not rngFind Is Nothing Then
rngFind.Select
Else
MsgBox "Es wurde nichts gefunden"
End If
End Sub

Diese funktioniert super, allerdings gibt sie immer nur den ersten Wert aus. Kann mir jemand den Code so anpassen, dass er nach der Markierung der gesuchten Zelle fragt, ober er weitersuchen soll? Allerdings nur so lange, bis jeder Wert einmal gefunden wurde (wenn das geht).

Vielen Dank im Voraus!
Antworten Top
#2
Hallöchen,


über unsere Suche findest Du mit dem Stichwort Findnext u.a. diesen Beitrag:
http://www.clever-excel-forum.de/Thread-...t=findnext

Die Lösung von dort baust Du entsprechend angepasst in deinen If-Zweig ein.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Hallo schauan

Danke für deine Antwort. Ich habe bereits mehrere änhliche Besipiele gefunden, jedoch scheitert es an der konkreten Einbettung in meinen Code/mein Problem.
Ich verfüge eigentlich über gar keine VBA-Kenntnisse (nur etwas Programmierkenntnisse in einer Afnängersprache) und bin damit etwas überfordert. Könntetst Du mir den Code entsprechend anpassen?
Antworten Top
#4
Da ich das ganze dringend benötige habe ich es nochmals selbst versucht. Leider ohne Erfolg: Entweder bekomme ich Fehler oder es passiert einfach gar nix mehr Dodgy
Antworten Top
#5
Hallo,

das könnte dann z.B. so aussehen:
Sub Suche()
 Dim rngFind As Range
 Dim strAdresseErsterTreffer As String
 Dim strTitel As String
 strTitel = InputBox("Suchbegriff:", "Suchbegriff eingeben", , 5, 5)
 If Len(strTitel) Then
   Set rngFind = Columns("A:L").Find(strTitel, LookIn:=xlValues)
   If Not rngFind Is Nothing Then
     strAdresseErsterTreffer = rngFind.Address
     rngFind.Select
     Do While MsgBox("Suche fortsetzen?", vbYesNo, "") = vbYes
       Set rngFind = Columns("A:L").FindNext(rngFind)
       If rngFind.Address = strAdresseErsterTreffer Then
         MsgBox "Es wurde nichts mehr gefunden."
         Exit Do
       End If
       rngFind.Select
     Loop
   Else
     MsgBox "Es wurde nichts gefunden"
   End If
 End If
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Hawkeye
Antworten Top
#6
Hallo Kuwer

Vielen, vielen Dank. Funktioniert super!

Ein Problem existiert aber noch: Wenn ich nach Daten (z.B. 12.03.2015) suche, findet er diese nicht. In der Ctrl+F Suche allerdings schon. Kann man das entsprechend anpassen? Wenn ich die Daten in der Suche im amerikanischen Format eingebe 3/12/2015 geht es.
Antworten Top
#7
(18.04.2016, 09:07)Hawkeye schrieb: Ein Problem existiert aber noch: Wenn ich nach Daten (z.B. 12.03.2015) suche, findet er diese nicht. In der Ctrl+F Suche allerdings schon. Kann man das entsprechend anpassen? Wenn ich die Daten in der Suche im amerikanischen Format eingebe 3/12/2015 geht es.

Hallo,

so funktioniert es bei mir auch mit Daten:
Sub Suche()
 Dim rngFind As Range
 Dim strAdresseErsterTreffer As String
 Dim varTitel As Variant
 varTitel = InputBox("Suchbegriff:", "Suchbegriff eingeben", , 5, 5)
 If IsDate(varTitel) Then varTitel = CDate(varTitel)
 If Len(varTitel) Then
   Set rngFind = Columns("A:L").Find(varTitel, LookIn:=xlValues)
   If Not rngFind Is Nothing Then
     strAdresseErsterTreffer = rngFind.Address
     rngFind.Select
     Do While MsgBox("Suche fortsetzen?", vbYesNo, "") = vbYes
       Set rngFind = Columns("A:L").FindNext(rngFind)
       If rngFind.Address = strAdresseErsterTreffer Then
         MsgBox "Es wurde nichts mehr gefunden."
         Exit Do
       End If
       rngFind.Select
     Loop
   Else
     MsgBox "Es wurde nichts gefunden"
   End If
 End If
End Sub Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Hawkeye
Antworten Top
#8
Hallo

Funktioniert perfekt. Musste nur in einem Dokument den Suchbereich noch vergrössern. Nochmals vielen Dank! Mit meinem Wissen hätte ich das nie hingekriegt, das habe ich nach 2h rumprobieren definitiv realisiert Wink
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste