Suchfunktion

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Suchfunktion von: JL
Geschrieben am: 08.02.2005 08:46:55

Moin,

Versuche den Suchdialog von Excel per VBA aufzurufen und dabei gleich die Voreinstellung im Feld

"suchen in" zu ändern auf

"in Werten" (voreingestellt ist "in Formeln")

Der Makrorecorder versagt hier und auch die Hilfe gibt nichts her.

Wüßte auch nicht wie man das generell ändert.

Danke
Jörg

Bild


Betrifft: AW: Suchfunktion von: Heinz A. Wankmüller
Geschrieben am: 08.02.2005 09:07:04

Hallo Jörg,

der Makrorecorder gibt dir über alles Auskunft, was du willst:

Cells.Find(What:="3", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate

Wenn du unter LookIn den Eintrag xlValues einträgst, dann wird nach den Werten gesucht. Auch in der Hilfe kannst du unter Find die gesamte Syntax nachlesen:

Find-Methode

Sucht bestimmte Informationen in einem Bereich und gibt ein Range-Objekt zurück, das die erste Zelle mit diesem Inhalt darstellt. Gibt Nothing zurück, wenn keine Übereinstimmung gefunden wird. Die Methode bleibt ohne Wirkung auf die aktuelle Markierung oder die aktive Zelle.

Informationen über die Verwendung der Tabellenfunktion Finden in Visual Basic finden Sie unter Verwenden von Tabellenfunktionen in Visual Basic.

Syntax

Ausdruck.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte)

Ausdruck Erforderlich. Ein Ausdruck, der ein Range-Objekt zurückgibt.

What Variant erforderlich. Der Inhalt, nach dem gesucht werden soll. Dabei kann es sich um eine Zeichenfolge oder einen beliebigen Microsoft Excel-Datentyp handeln.

After Variant optional. Gibt die Zelle an, nach der die Suche beginnen soll. Dies entspricht der Position der aktiven Zelle, wenn eine Suche von der Benutzeroberfläche aus durchgeführt wird. Bitte beachten Sie, dass After eine einzelne Zelle im Bereich sein muss. Beachten Sie, dass die Suche nach dieser Zelle beginnt, die angegebene Zelle wird also erst durchsucht, wenn der Suchlauf zur Ausgangszelle zurückkehrt. Wird das Argument nicht angegeben, so ist die obere linke Zelle des Bereichs der Startpunkt für die Suche.

LookIn Variant optional. Zulässig ist eine der folgenden XlFindLookIn-Konstanten: xlFormulas, xlValues oder xlComments.

LookAt Variant optional. Zulässig sind die XlLookAt-Konstanten xlPart oder xlWhole.

SearchOrder Variant optional. Zulässig sind die XlSearchOrder-Konstanten xlByColumns oder xlByRows.

SearchDirection Variant optional. Zulässig sind die XlSearchDirection-Konstanten xlNext oder xlPrevious. Die Standardkonstante ist xlNext.

MatchCase Variant optional. Wenn True, wird bei der Suche zwischen Groß- und Kleinschreibung unterschieden. Der Standardwert ist False.

MatchByte Variant optional. Wird nur verwendet, wenn double byte-Sprachunterstützung ausgewählt oder installiert wurde. Wenn True, werden double byte-Zeichen nur mit double byte-Zeichen verglichen. Wenn False, so können double byte-Zeichen mit den entsprechenden single byte-Zeichen übereinstimmen.

Anmerkungen

Die Angaben für LookIn, LookAt, SearchOrder und MatchByte werden jedesmal gespeichert, wenn Sie diese Methode verwenden. Falls Sie beim nächsten Aufruf dieser Methode keine Werte für die Argumente angeben, werden die gespeicherten Werte verwendet. Die Angabe dieser Argumente ändert die Einstellungen im Dialogfeld Suchen, und eine Änderung der Einstellungen im Dialogfeld Suchen ändert die gespeicherten Werte, die verwendet werden, wenn Sie die Argumente nicht angeben. Um Probleme zu vermeiden, sollten Sie bei jeder Verwendung dieser Methode diese Argumente ausdrücklich angeben.

Mit den Methoden FindNext und FindPrevious können Sie die Suche mit denselben Kriterien wiederholen.

Erreicht die Suche das Ende des angegebenen Suchbereichs, beginnt sie erneut am Anfang dieses Bereichs. Um zu verhindern, dass der Bereich erneut durchsucht wird, speichern Sie die Adresse der zuerst gefundenen Zelle, und vergleichen Sie dann jede nachfolgend gefundene Zelladresse mit dieser gespeicherten Adresse.

Wenn Sie bei der Suche von Zellen ein komplexeres Suchmuster verwenden wollen, können Sie eine For Each...Next-Anweisung in Kombination mit dem Like-Operator einsetzen. Der folgende Code durchsucht beispielsweise alle Zellen im Bereich A1:C5 nach einer Zelle, deren Schriftart mit den Buchstaben "Cour" anfängt. Im Falle einer Übereinstimmung wird die Schriftart in Times New Roman geändert:

For Each c In [A1:C5]
If c.Font.Name Like "Cour*" Then
c.Font.Name = "Times New Roman"
End If
Next

Gruß
Heinz


Bild


Betrifft: AW: Suchfunktion von: JL
Geschrieben am: 08.02.2005 11:56:26

Ja Danke, aber wenn man über

Application.Dialogs(xlDialogFormulaFind).Show

das Dialogfeld einblenden will gehts m.E. nicht.

Alternative wäre über eine InputBox die Find-Methode anzusprechen.
Wahrscheinlich das beste.

Jörg


Bild


Betrifft: AW: Suchfunktion von: Heinz A. Wankmüller
Geschrieben am: 08.02.2005 14:21:05

Hallo Jörg,

ich meine auch, dass über eine Inputbox der zu suchende Wert erfasst wird und dann mit Find ausgewertet wird.

Gruß
Heinz


 Bild

Beiträge aus den Excel-Beispielen zum Thema "automatische "Verlinkung" von Excel"