Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1836to1840
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Suche mit Textfeld Werte / Kommentare

Suche mit Textfeld Werte / Kommentare
08.07.2021 13:16:43
Thomas
Geschätzte Forumsmitglieder,
Ich möchte eine Suchfunktion programmieren welche den Wert aus der Textbox "Suchfeld" im aktiven Tabellenblatt suchen geht.
Die zu durchsuchenden Datensätze sind mit Werten in der Zelle & Kommentaren versehen. Nun weis ich nicht wie ich den Code schreiben muss damit die Suche beides durchläuft (Zellenwerte und Kommentare)
Das erste gefundene Ergebnis soll anschliessend markiert werden.
Vielen Dank für Eure Hilfe!
Gruss Thomas
Hier der bestehende Code:
---------------

Private Sub SuchfeldSTART_Click()
On Error GoTo Fehler
Dim dValue As Double
dValue = Suchfeld.Text
Cells.Find(What:=dValue, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
Cells.Find(What:="dValue", After:=ActiveCell, LookIn:=xlComments, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
With ActiveCell
Range(.Offset(0, 0), .Offset(0, 2)).Select
End With
Exit Sub
Fehler:
MsgBox "Wert wurde nicht gefunden"
End Sub
-------------

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: und wieso nicht mit der Excel-Suche? (owT)
08.07.2021 13:23:30
EtoPHG

AW: und wieso nicht mit der Excel-Suche? (owT)
08.07.2021 13:36:24
Thomas
Hi EtoPHG,
Weil es mit der normalen Excel suche nur in den Zellen ODER in den Kommentaren Sucht. (Sprich einfach nicht beides zusammen)
Es ist mühsam für jede Suche unter Optionen / Suchen in / den Suchbereich zu wechseln.
Deshalb sehe ich diesen Weg über ein Marko als elegante Lösung.
Gruss Thomas
AW: und wieso nicht mit der Excel-Suche? (owT)
08.07.2021 14:06:08
Yal
Hallo Thomas,
Versucht folgendes:

Private Sub SuchfeldSTART_Click()
Dim Ergebnis As Range
'Suche auf Zellen
Set Ergebnis = Cells.Find(What:=Suchfeld.Text, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
'Suche auf Kommentar (nur wenn bei Zellen nichts gefunden)
If Ergebnis Is Nothing Then _
Set Ergebnis = Cells.Find(What:=Suchfeld.Text, After:=ActiveCell, LookIn:=xlComments, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
'wenn gefunden, Ergebnis + 2 Zellen rechts auswählen
If Not Ergebnis Is Nothing Then
Ergebnis.Resize(1, 3).Select
Else
MsgBox "Wert wurde nicht gefunden"
End If
End Sub
(nicht getestet. kann Spuren von Tipp-Fehler enthalten)
VG
Yal
Anzeige
AW: Kennst Du den Objekt-Explorer in VBE?
08.07.2021 14:26:10
EtoPHG
Hallo Thomas,
Wenn nicht, dann solltest Du Dich unbedingt mal mit dem Objektmodell von Excel beschäftigen.
Wie stellst Du Dir den den die Suche vor, wenn nicht mit der Find-Methode?
Mit dieser musst Du auch 2 x suchen, 1x in Zelleinhalten, 1x in Kommentaren. Das kannst du ja mit dem Makro-Rekorder aufzeichnen und dann den Code bereinigen.
Eine Alternative, wäre durch alle Zellen des zu durchsuchenden Bereichs zu iterieren und dann jedesmal zu testen, wenn ob die Zelle einen Kommentar und dieser den Suchbegriff enthält (unter der Bedingung, dass der Zellinhalt den Suchbegriff nicht enthält). Dies wird aber mit Sicherheit wesentlich langsamer sein, als die .Find-Methode.
Gruess Hansueli
De Ornate non disputandum est!
Anzeige
AW: Suche mit Textfeld Werte / Kommentare
08.07.2021 14:14:20
Daniel
Hi
Probiers mal so.
Allerdings werden zuerst die Werte durchsucht und die Kommentare nur dann, wenn der Wert nicht in den Zellen steht.

Dim Zelle as Range
Dim dValue As String
dValue = Suchfeld.Text
Set Zelle = Cells.Find(What:=dValue, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
If Zelle is Nothing then
Set Zelle = Cells.Find(What:=dValue, After:=ActiveCell, LookIn:=xlComments, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
End if
If Zelle is Nothig then
Msgbox "Nicht gefunden"
Else
Zelle.Resize(, 3).Select
End if
Ansonsten, Variablen dürfen nicht in Anführungszeichen stehen.
Du machst das einmal richtig ersten .Find und dann falsch im zweiten .Find (What:="dValue"). Warum?
Aus der Textbox kommt Text, daher sollte auch die aufnehmende Variable vom Typ String sein.
Gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige