# Suchmakro in Excel (mit Button)



## olitheis (18 Januar 2010)

Hallo,
ich möchte in einer Exteltabelle (nur 1 Arbeitsblatt) einfach nach Bergriffen suchen, die in verschieden Felder händisch eingetragen wurden (teilweise auch über Drop-Down Auswahlen).
Am oberen Rand des Blattes sollte also ein Button sein mit Label "Suchen", der eine Suchmaske öffnet, wo man einen Begriff eintragen kann. Dieser Begriff soll dann im gesamten Arbeitsblatt gesucht werden.
Ich habe mit VB und Makros noch nicht so sehr viel Erfahrung, würde mich aber freuen, wenn ihr mir da weiterhelfen könntet. Vielleicht gibt es ja eine "einfache" Lösung.
Danke
Oli


----------



## vierlagig (18 Januar 2010)

```
*
Sub suchen()

Dim rngFind As Range
Dim strTitel As String
'suchdialog kreieren
strTitel = InputBox("Suche nach:", "Suchbegriff eingeben", , 5, 5)
'zu durchsuchenden spaltenumfang angeben
Set rngFind = Columns("A:H").Find(strTitel, LookIn:=xlFormulas)
'zur stelle springen oder message ausgeben
If Not rngFind Is Nothing Then
    rngFind.Select
Else
    MsgBox "Es wurde nichts gefunden"
End If

End Sub
```


----------



## vierlagig (18 Januar 2010)

die Find-Methode kannst du natürlich noch anpassen und ausbauen - case-sensitiv und so weiter ... siehe dazu auch hier: http://www.ozgrid.com/VBA/find-method.htm


----------



## vierlagig (18 Januar 2010)

eine ganz böse möglichkeit ist auch folgende:


```
*
Sub suchen()
    Application.SendKeys ("^f")
End Sub
```


----------



## olitheis (18 Januar 2010)

Danke für Deine schnell AW.
Wie gesagt, ich bin quasi ein Noob, was diese Codes angeht. Könntest Du mir evtl. die Vorgehensweise zum erstellen eines solchen Buttons mit Suchfunktion erklären (step-by-step)? :roll:
Danke


----------



## vierlagig (18 Januar 2010)

welche excel-version?


----------



## olitheis (18 Januar 2010)

Excel 2003


----------



## vierlagig (18 Januar 2010)

Alt+F11
Einfügen -> Modul
Quellcode einfügen (ohne *  )
speichern, editor schließen

in der gewünschten tabelle:
den button reinmalen (habe hier nur ein englisches excel2003, da ist es die toolbar "Forms")
den button im auftauchenden dialog mit der eingefügten sub verknüpfen
fertig!


----------



## olitheis (18 Januar 2010)

PERFEKT!!! 
Danke Dir


----------



## olitheis (18 Januar 2010)

ich nochmal. Wie könnte ich denn jetzt die Suche auf nur eine Spalte oder einen bestimmten bereich eingrenzen?
Danke nochmal


----------



## vierlagig (18 Januar 2010)

in dieser zeile an der stelle A:H ...

```
*
Set rngFind = Columns("A:H").Find(strTitel, LookIn:=xlFormulas)
```

A nur in spalte A
A:H die spalten A bis H
die exceltypische-trennung mit ; funktioniert hier leider nicht...

du kannst die sub auch mehrfach anlegen (unterschiedliche namen) und so dediziert bestimmte spalten durchsuchen, also mehrere buttons die dann die entsprechende sub aufrufen


----------



## olitheis (18 Januar 2010)

muchas grazias!!!


----------



## olitheis (21 Januar 2010)

Hallo vierlagig,

noch ne Frage zu dem Suchmakro:
Wie könnte ich denn erreichen, dass "weitergesucht" wird? So wie es jetzt ist, wird ja immer nur von oben bis zum 1. Suchergebnis gesucht und ich kann von dort aus nicht weitersuchen. 
Kann man den Code dazu anpassen oder ändern?
Vielen Dank


----------



## stephan.1977 (27 August 2013)

Hallo, ich bin absoluter Anfänger und habe in meine Exceldatei folgendes Makro eingefügt.  Sub Nach_Namen_Suchen() ' ' Nach_Namen_Suchen Makro ' ' Tastenkombination: Strg+s '      Dim strTitel As String 'suchdialog kreieren strTitel = InputBox("Suche nach:", "Suchbegriff eingeben", , 5, 5) 'zu durchsuchenden spaltenumfang angeben Set rngFind = Columns("A:C").Find(strTitel, LookIn:=xlFormulas) 'zur stelle springen oder message ausgeben If Not rngFind Is Nothing Then     rngFind.Select Else     MsgBox "Es wurde nichts gefunden" End If End Sub  Dies funktioniert soweit ganz gut und reicht auch völlig aus. Gibt es vielleicht eine Möglichkeit das man auf allen Tabellenblättern (3 Stück) suchen kann?  Danke für die Hilfe.


----------



## stephan.1977 (27 August 2013)

Hallo, kann mir jemand helfen?

Ich habe folgendes Makro bei mir eingefügt:

Sub Nach_Namen_Suchen()
'
' Nach_Namen_Suchen Makro
'
' Tastenkombination: Strg+s
'

Dim strTitel As String
'suchdialog kreieren
strTitel = InputBox("Suche nach:", "Suchbegriff eingeben", , 5, 5)
'zu durchsuchenden spaltenumfang angeben
Set rngFind = Columns("A:C").Find(strTitel, LookIn:=xlFormulas)
'zur stelle springen oder message ausgeben
If Not rngFind Is Nothing Then
    rngFind.Select
Else
    MsgBox "Es wurde nichts gefunden"
End If
End Sub

Nun möchte ich aber noch die anderen zwei Tabellenblätter mit durchsuchen lassen, nur wie????

Danke für eure Hilfe!


----------

