Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
988to992
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
988to992
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Suche von unten nach oben m. FindNext?

Suche von unten nach oben m. FindNext?
06.07.2008 10:41:00
unten
Excel-Level: mittelgut
Hallo liebe Forumsmitglieder!
Mit einer Userform versuche ich Vokabeln aus einer Tabelle in Steuerelement-Textfelder einzulesen.
In der Userform gibt es 15 Textfelder. Auf Druck eines Commandbuttons namens "cmdErsteSuche" sucht ein Makro ein in das Suchbegriff-Textfeld "txtGesucht" eingegebenes Wort mit "Find" und "FindNext". Wenn mehr als 15 Einträge des Suchbegriffs in der Tabelle vorhanden sind, werden zunächst nur die ersten 15 Einträge gesucht und eingetragen (weil es ja nur die 15 Textfelder zum Eintragen gibt).
Rechts neben dem genannten Commandbutton befindet sich ein weiterer "cmd_Weiter". Wenn man diesen
drückt, werden mit "Findnext" (in Verbindung mit "After:= ActiveCell") die nächsten 15 Vorkommnisse des
Suchbegriffs gesucht und gefunden.
So geht es weiter, immer weiter nach unten in der Tabelle. Klappt auch ganz gut.
Mein Problem: Ich würde, wenn ich auf diese Weise ein paar Mal nach unten "gescrollt" habe, dann auch
in der umgekehrten Richtung in der Tabelle von unten nach oben suchen können, d.h. die 15 jeweils vorangegangenen Suchbegriffe suchen und in die Textfelder eintragen lassen (z.B. mit einem wieteren Commandbutton). Doch leider gibt es für die FindNext-Anweisung keine Ergänzung von der Art "Before:=ActiveCell".
Wie kann man so ein Problem lösen? Kann man mit FindNext auch von unten nach oben suchen? Hat jemand von euch eine Idee? Dank!!
Werner R.

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

Betreff
Datum
Anwender
Anzeige
AW: Suche von unten nach oben m. FindNext?
06.07.2008 10:54:00
unten
Hallo,
so weit ich weis gibt es keine Rückwertsuche in Excel, Du müsstest Dir eine Schleife bauen die
den Zellbereich ab einer bestimmten Zelle nach oben durchläuft.
Gruß Tino

www.VBA-Excel.de


AW: Suche von unten nach oben m. FindNext?
06.07.2008 11:00:20
unten
HAllo

Doch leider gibt es für die FindNext-Anweisung keine Ergänzung von der Art "Before:=ActiveCell". 


Dann schau dir doch mal die


FindPrevious-Methode

an.
ransi

Aber natürlich!
06.07.2008 11:09:00
Werner
Hallo Ransi,
das ist natürlich die Lösung!! Toll, umwerfend! Ich habe diesen Befehl völlig vergessen gehabt!
Tausend Dank! Werner R.

Anzeige
Schleife ist ziemlich langsam
06.07.2008 11:07:33
Werner
Hallo Tino,
dann könnte ich "Find" und "FindNext" gar nicht einsetzen? Das Verfahren wäre dann sehr langsam
(z.N. mit "For Each c in UsedRange"... Next c" oder ähnlich).
Gedacht hatte ich auch an eine Arrayvariable (muss global sein), die die Ergebnisse der ersten Suchen, die ja alle von oben nach unten laufen, speichert. Beim Rückwärtssuchen würde man die Werte aus dieser
Variable einfach wieder auslesen.
Ich hoffe jedoch trotzdem, dass es noch eine praktikablere Lösung gibt.
Das hier geschilderte Problem tritt doch wohl gar nicht so selten auf, sondern kann bei Listenelementen
jeder Art entstehen!
Werner R.

Anzeige
AW: Schleife ist ziemlich langsam
06.07.2008 11:20:00
Tino
Hallo,
Ransi hat natürlich recht.
Dies müsste man so in etwa umsetzen.

Dim Zelle As Range
Sub Suche()
Set Zelle = Range("A:A").Find("Hallo")
If Not Zelle Is Nothing Then Debug.Print Zelle.Address
End Sub
Sub SucheVor()
If Not Zelle Is Nothing Then
Set Zelle = Range("A:A").FindNext(Zelle)
End If
If Not Zelle Is Nothing Then Debug.Print Zelle.Address
End Sub
Sub SucheRuck()
If Not Zelle Is Nothing Then
Set Zelle = Range("A:A").FindPrevious(Zelle)
End If
If Not Zelle Is Nothing Then Debug.Print Zelle.Address
End Sub


Gruß Tino

www.VBA-Excel.de


Anzeige
OK
06.07.2008 13:26:00
Werner
Hallo Tino,
das ist mir schon klar, uns war eben nur die Anweisung "FindPrevious" nicht eingefallen.
Trotzdem vielen Dank! Werner R.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen