5.1k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich habe eine Wörterbuch-Liste in Excel erstellt und brauche nun eine Suchfunktion, am besten via VBA, welche die Liste nach Wörtern durchsucht.
Am besten wären 2 Buttons (also 2 Programme) für jeweils eine Spalte in der gesucht werden soll. Das heißt ich möchte jede Spalte einzeln nach Wörtern durchsuchen.

Am allerschönsten wäre es, wenn ich die Programmierung einfach nur einfügen müsste :) Denn ich bin leider kein Computerspezi :)

Kann mir da bitte jemand helfen? :)

Nacholino

15 Antworten

0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Nacholino,
habe das Muster geändert.

Gruß
fedjo
0 Punkte
Beantwortet von
Vielen Dank Coros, leider darf ich diese Datei nicht hochladen, da diese Datei für meinen Job ist.

@Fedjo: Leider kann ich das Muster nicht downloaden, versuche es aber zuhause auf meinem Laptop nochmal.

Ansonsten vielen Dank euch allen!

Viele Grüße

Nacholino
0 Punkte
Beantwortet von
So sah die Programmierung für die ganze Tabelle aus:

Aktiviere über Ansicht/Symbolleisten die Symbolleiste
"Steuerelement-Toolbox" und wähle dort Befehlsschaltfläche aus und
positionierst diese auf dem Tabellenblatt. Jetzt einen Doppelklick auf den Button und folgenden Code einfügen:
Code:
Private Sub CommandButton1_Click()
Call SearchAllTables
End Sub


Dann im VBA-Editor über Einfügen ein "Modul" einfügen. In das Modul kommt
folgender Code:
Code:
Option Explicit
Global SSearch As String

Public Sub SearchAllTables()
Dim ws As Worksheet
Dim c
Dim firstAddress As String
Dim secAddress
Dim GFound As Boolean
Dim GWeiter As Boolean

GWeiter = False
GFound = False
anf:
SSearch = InputBox("Suchen nach:", "Search In All Tables", SSearch)

If SSearch = "" Then
End
End If
weiter:
For Each ws In Worksheets
'ws.Select
With ws.Cells
Set c = .Find(SSearch, LookIn:=xlValues, MatchCase:=False)
If Not c Is Nothing Then
GFound = True
ws.Select
c.Select
firstAddress = c.Address
If MsgBox("Weitersuchen ?", vbQuestion + vbYesNo) = vbYes Then
Do
Set c = .FindNext(c)


secAddress = c.Address
If c.Address = firstAddress Then
Exit Do
End If
c.Select
If MsgBox("Weitersuchen ?", vbQuestion + vbYesNo) = vbNo Then
GWeiter = True
GoTo ende
End If
Loop While Not c Is Nothing And secAddress <> firstAddress And c.Address <> firstAddress
Else
GWeiter = True
GoTo ende
End If
End If
End With
Next ws

ende:

If GFound = False Then
If MsgBox("Suchwert nicht gefunden ! Neue Suche ?", vbInformation + vbYesNo) = vbYes Then
GoTo anf:
End If
Else
If GWeiter = False Then
If MsgBox("Sie haben alle Tabellenblätter durchsucht ! Soll die Suche neu gestartet werden ?", vbInformation + vbYesNo) = vbYes Then
GoTo weiter
End If
End If
End If

End Sub


Datei speichern, schliessen, öffnen, auf Button klicken und Suchwert eingeben.


--> Die Programmierung war richtig gut, aber nur für das gesamte Tabellenblatt :(
0 Punkte
Beantwortet von berpre Mitglied (452 Punkte)
Hallo @coros ( Oliver )

ich habe mich in diesem Thradt eingeklickt da ich seit geraumer Zeit eine Suchfunktion für Excel suche.

Dein VBA Modul ( AW 7 ) habe ich in meine Exceldatei eingefügt und funktioniert super.

Ich bedanke mich bei Dir für die gelungene Arbeit.

Gruß Berpre
0 Punkte
Beantwortet von berpre Mitglied (452 Punkte)
Hallo @coros ( Oliver )

sorry, müsste richtig heißen: Thread anstatt Thradt.

Gruß Berpre
...