Suchfunktion in Excel (2007) Tabelle einfügen

luckysh0t

Commander
Registriert
Nov. 2007
Beiträge
2.403
Hallo zusammen,

ich will in einer Excel-Tabelle eine Suchfunktion einbinden, die dauerhaft in einer Zelle verweilt, quasi ne art Desktopsearch aus der Taskleiste in excel für diese Tabelle in einer zelle. Als extra Fenster ist kein Problem nur stört das nur.

Gibts da eine Möglichkeit das so hinzubekommen ?


Mfg

Lucky
 
Was willst du denn als Suchergebnis; die Zelle mit dem gesuchten Wert?

Hab mal was gebastelt. Nach der Eingabe in A22 musst du in die Zelle A23 oder B22 wechseln (je nachdem, wie Excel bei dir eingetellt ist, passiert das automatisch wenn du nach der Eingabe Enter drückst).
 

Anhänge

Zuletzt bearbeitet:
ja genau

nur wie bekomme ich das ding jetz in miene tabelle das es auch funktioniert ?
ist eine adressliste etc.

hab zwar schon weng rumprobiert aber das klappt niht so wie ich das will

mfg

lucky
 
Mit Alt + F11 den VBA-Editor öffnen; sofern am linken Rand nicht zu sehen, über Strg + R den Projektexplorer (Ansicht | Projektexplorer) öffnen. Dort einen Doppelklick auf dein Arbeitsblatt (bspw. Tabelle1) und dann im rechten Fenster diesen Code einfügen:
Code:
Dim LastSelected As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address <> "[COLOR="Green"]$A$23[/COLOR]" And Target.Address <> "[COLOR="blue"]$B$22[/COLOR]" Then GoTo merken

If LastSelected = "[COLOR="Red"]$A$22[/COLOR]" Then Call suchen

merken:
LastSelected = Target.Address
End Sub
  • $A$22: die Zelle, in die du den Suchbegriff eingibst
  • $A$23: eine Zelle unter deinem Eingabefeld
  • $B$22: eine Zelle rechts neben dem Eingabefeld
Letztere brauchst du natürlich nicht beide - hab ich nur gemacht, damit es sicher klappt; standardmäßig wird ja das Feld darunter mit Enter ausgewählt, also würde in diesem Fall Zelle A23 genügen. Theoretisch kannst du hier jede x-beliebige Zelle angeben - du musst diese Zelle aber nach der Eingabe entweder durch Bestätigen mit Enter oder aber mit der Maus auswählen.
vba_1.png

Den nächsten Code kannst du theoretisch direkt darunter einfügen oder aber in ein eigenes Modul (Einfügen | Modul). Steht der Code in einem eigenen Modul, kann jedes Tabellenblatt darauf zugreifen, ansonsten nur das, in welches du den Code eingefügt hast.
Code:
Sub suchen()

Dim sSuche As String
Dim rngSuche As Range

sSuche = Range("[COLOR="Red"]A22[/COLOR]")

Set rngSuche = Range("[COLOR="Green"]A1:T20[/COLOR]").Find(What:=sSuche, LookIn:=xlValues)
If Not rngSuche Is Nothing Then
    With rngSuche.Cells
        MsgBox ("Gefunden in " & .Address(0, 0)) [COLOR="green"]' Hinweisfenster mit Meldung Gefunden in Zelle X[/COLOR]
        .Select                                  [COLOR="green"]' Zelle mit gefundenem Begriff auswählen[/COLOR]
    End With
Else
MsgBox ("Suchbegriff nicht gefunden") [COLOR="Green"]' Hinweis wenn nichts gefunden wurde[/COLOR]
End If

End Sub
A22: wie gehabt dein Eingabefeld
A1:T20: der Zellbereich, der durchsucht werden soll.
vba_2.png
 
Zuletzt bearbeitet:
aha

hab zwar des im im 2 modul bearbeitet weil ich das herleiten konnte nur dem ersten keine beachtung geschenkt... XD

Aber jetz gehts vielen dank

bist mein held des tages ^^

Ps :

kann ich dem feld für die suche ein namen geben das man das sieht zb. Suchbegriff
also dass, das quasi so leicht geraut in der zelle steht und verschwindet wenn ich was reinschreibe, nicht dass, das dann mit zum suchbegriff gezählt wird ?


Gibt es so eine anleitung als Sticky hier ? wenn nein wäre das doch nicht schlecht weil das eine gut zugebrauchenes makro ist wie ich finde und ander anleitungen die ich gefunden habe nur schlecht als recht sind wenn man davon mal gar keine ahnung hat
 
Zuletzt bearbeitet:
Es steht ja immer das drin, was du reingeschrieben hast.

Wenn da jetzt von Beginn an Suchbegriff drin stünde, überschreibst du das doch mit deiner Eingabe.
 
Zurück
Oben