WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Software (http://www.wcm.at/forum/forumdisplay.php?f=5)
-   -   Excel Suchfunktion (http://www.wcm.at/forum/showthread.php?t=231071)

outbreak 08.10.2008 00:08

Excel Suchfunktion
 
Hi,

bin auf der Suche nach einer Lösung für eine Suchfunktion für die jeweilige Spalte in einer bestimmten Zelle angezeigt wird.

D.h. ich habe eine Spalte z.B. A1 mit "Vorname Nachname", in A2 will ich das Suchfeld: Darunter stehen alle namen.

Gut, jetzt kommen sicher die ansagen mit filter usw. das will ich alles nicht, auch nicht Strg+F... sonstiges. - so ist es im Moment

Ich will in dieses Feld A2 Markus eingeben.. (am schönsten wäre es wenn es unten gleich mitsucht, also je mehr man eingibt, umso weniger Treffer werdens) und es kommen alle Ergebnisse mit markus - ob das jetzt der Vor od. der Nachname ist sollte egal sein.

Ich hoff das klappt irgendwie ;)

Karl99 08.10.2008 13:07

Ich würd das mit einer Makroprogrammierung lösen. Vom Grundansatz her: Lass die Datenbank (jener Bereich also, wo alle Deine Daten eingetragen sind) bis EOF (End of File) durchsuchen und mit dem Begriff aus A2 vergleichen (Funktionsname InStr(...)) - und das Ganze läßt Du Dir ab einer gewissen Zelle in einer anderen Tabelle wieder ausgeben. Google mal ein wenig, falls ich Zeit habe, versuch ich Dir, morgen ein Makrobeispiel zu kreiieren.

outbreak 08.10.2008 16:39

Das wär ja pipfein, ich hab schon ein bissi gegooglt, aber nicht wirklich was gefunden.

Das Problem is ja, dass ich dann die ganze Zeile angezeigt brauche.

Also es soll ja eigentlich funktionieren wie der Filter - kann man nicht die Funktion "Enthält" infach herauslegen?

Karl99 09.10.2008 08:49

So wie Du es aber beschreibst, wär das ein Fall für den "Spezialfilter" (Excel-Daten-Filter-Spezialfilter). Da würdest Du Dir die Makroprogrammierung ersparen und der Vorteil ist dabei auch, dass (in ein neues Tabellenblatt oder in einen anderen Bereich vorausgesetzt) Du auch immer den ganzen Originalbestand sehen würdest. Ich weiß schon, dass Du vom Filter, den Du nicht möchtest geschrieben hast, aber bitte um Info, was Dich am Filter stört.

outbreak 09.10.2008 21:30

Ich hab keine Ahnung wie dieser Spezialfilter funktioniert leider.

outbreak 11.10.2008 11:13

So wie es scheint ist es gar nicht soo schwer mit einem Makro zu realisieren.

Schaut ungefähr so aus:

--> mache filter --> enthält --> nimm was in Feld B2 steht.

Mein Problem jedoch ist, das ich gerne direkt mit Enter das Makro anstarten möchte, was auch möglich ist, aber ich schaff es trotzdem nicht.
Wenn ich enter drücke und dann die gewählte Tastenkombi dann funktionirts,
Ist natürlich viel viel erweiterbar, aber das wär schon mal ein guter Anfang wenn mir hier nochmal wer helfen könnte.

tba 11.10.2008 11:19

ich denke der sverweis ist die mächtigste suchformel in excel, aber ob du das damit so realisieren kannst wie du möchtest kA.

outbreak 12.10.2008 15:25

Juhu ich habs geschafft, einmal mit einem SVerweis, in de einen Liste,
und einmal mit einem Filter Makro:
Schaut ungefähr so aus.

Sub Namenssuche()
Dim Suchbegriff As String
Suchbegriff = InputBox("Namenssuche:", "AutoFilter")
If Suchbegriff = "" Then
Selection.AutoFilter Field:=2
Else
Selection.AutoFilter Field:=2, Criteria1:="=*" & Suchbegriff & "*"
End If
End Sub
Sub Handysuche()
Dim Suchbegriff As String
Suchbegriff = InputBox("Handysuche:", "AutoFilter")
If Suchbegriff = "" Then
Selection.AutoFilter Field:=1
Else
Selection.AutoFilter Field:=1, Criteria1:="=*" & Suchbegriff & "*"
End If
End Sub
Sub Mailsuche()
Dim Suchbegriff As String
Suchbegriff = InputBox("Mailsuche:", "AutoFilter")
If Suchbegriff = "" Then
Selection.AutoFilter Field:=3
Else
Selection.AutoFilter Field:=3, Criteria1:="=*" & Suchbegriff & "*"
End If
End Sub

Das alles mit einem Button verlinkt und fertisch.

Noch einen Resetfilterbutton.

ActiveSheet.Range("$A$5:$F$901").AutoFilter Field:=1
ActiveSheet.Range("$A$5:$F$901").AutoFilter Field:=2
ActiveSheet.Range("$A$5:$F$901").AutoFilter Field:=3

Und die Sache hat sich.


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag