Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1656to1660
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
Wort suchen in Spalten
25.11.2018 14:51:39
speedy
Hallo Community,
mir wurde schon einmal von euch geholfen. Nun ersuche ich euch nochmals um eure geschätzte _
Hilfe ... und zwar: Den unten stehenden Code möchte ich soweit erweitern, dass ich in der _
Spalte "A" nach ganzen Zellen suche (xlWhole) und in folge die Spalten "B" bis "H" mit "xlPart" _
nach dem Suchbegriff durchsucht werden. Besteht dazu die Möglichkeit?

Sub Suchen()
Dim Suchbegriff$
On Error GoTo Fehler
Suchbegriff = InputBox("bitte Suchbegriff eingeben", , "")
If StrPtr(Suchbegriff) = 0 Then Exit Sub
Suchbegriff = "" & Suchbegriff & ""
Cells.Find(What:=Suchbegriff, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart).Activate
weiter:
Cells.FindNext(After:=ActiveCell).Activate
If MsgBox("Weiter suchen?", vbYesNo, "  Sie haben gesucht nach: -> " & _
Suchbegriff) = vbYes Then GoTo weiter
Exit Sub
Fehler:
MsgBox "Leider kein Treffer"
End Sub

Ich danke euch schon im voraus für eure Antwort.
Speedy

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wort suchen in Spalten
25.11.2018 16:07:46
Piet
Hallo Speedy
die Aufgabe ist mir im Augenblick noch unklar? Meinst du in Spalte A xlWhole suchen, ganze Zelle, und ab der Zeile von B bis H nach unten weitersuchen? Wenn Nein erklaere uns bitte was du genau meinst.
mfg Piet
AW: Wort suchen in Spalten
25.11.2018 17:46:13
speedy
Hallo Piet,
ja, ich möchte in Spalte "A" nur ganze Wörter bzw. Zahlen suchen und ab Spalte "B" bis "H" möchte ich Spaltenweise nach unten Wörter im Text suchen können.
LG
speedy
AW: Wort suchen in Spalten
25.11.2018 19:19:43
Gerd
Moin,
letzte Unklarheiten sind geblieben.
Sub Suchen()
Dim Suchbegriff$, erste$, c As Range, r As Range, s As Range, at%
Suchbegriff = InputBox("bitte Suchbegriff eingeben", , "")
If StrPtr(Suchbegriff) = 0 Then Exit Sub
Set s = ActiveCell
Set r = Columns("A")
at% = xlWhole
weiter:
Set c = r.Find(Suchbegriff$, after:=Cells(1, r.Column), _
lookat:=at%, LookIn:=xlFormulas, MatchCase:=False, searchorder:=xlByColumns)
If Not c Is Nothing Then
erste$ = c.Address
Do
c.Activate
If MsgBox("Weiter suchen?", vbYesNo, "  Sie haben gesucht nach: -> " & _
Suchbegriff) = vbNo Then Exit Sub
Set c = r.FindNext(c)
Loop Until c.Address = erste$
at% = xlPart
Set r = Range("B:H")
If Range(erste$).Column = 1 Then
GoTo weiter
Else
s.Activate
End If
End If
Set c = Nothing: Set r = Nothing: Set s = Nothing
End Sub

Gruß Gerd
Anzeige
AW: Wort suchen in Spalten
25.11.2018 19:53:17
speedy
Hallo Gerd,
danke dir für deine Mühe. Leider funkt es nicht. Der Macro liefert mir zwar in Spalte "A" die gesuchte Zahl (Beispiel 150) als Treffer und in den Spalten "B - H" als Zahlfragment (12415033).
Bei Text(Wort)suche schliesst sich das Suchfenster und es geschied nichts mehr. :-(
AW: Wort suchen in Spalten
25.11.2018 20:39:34
Piet
Hallo Speedy
wie ist bitte dieser Satz zu verstehen? - Bei Text(Wort)suche schliesst sich das Suchfenster und es geschied nichts mehr. :-(
Soll nach dem finden einer Zahl oder Text in A bei den Spalten B bis H ein anderes Wort gesucht werden? Das ist mir jetzt unklar!
In dem Falle müsste eine neue InputBox geöffnet werden, oder der zweite Wert beim Start in der 1. InputBox durch ein " " Space oder "," getrennt werden, damit man im Makro zwei Suchbegriffe auswerten kann. Wir warten mal deine Antwort ab.
mfg Piet
Anzeige
AW: Wort suchen in Spalten
26.11.2018 10:13:26
Speedy
Hallo Piet / Gerd,
erstmal danke für eure Geduld mit meiner umständlichen Erklärung.
Piet: "wie ist bitte dieser Satz zu verstehen? - Bei Text(Wort)suche schliesst sich das Suchfenster und es geschied nichts mehr."
... Bei Zahl-Eingabe arbeitet der Makro den Code ab. Bei Text-Eingabe schliesst sich das Suchfenster und es wird keine Suche durchgeführt.
Piet: "Soll nach dem finden einer Zahl oder Text in A bei den Spalten B bis H ein anderes Wort gesucht werden? Das ist mir jetzt unklar!"
...Nein, der eingegebene Suchbegriff bleibt für alle Spalten gleich.
Neuer Anlauf:
In Spalte "A" soll der Suchbegriff nur in ganzen Zellen abwärts gesucht werden.
In den Spalten "B - H" soll der gleiche Suchbegriff auch in Stichwörtern abwärts gefunden werden.
mfg Speedy
Anzeige
AW: Wort suchen in Spalten
26.11.2018 15:47:01
Piet
Hallo Speedy
ich habe den Code von Gerd ein wenig geaendert. So sollte er funktionieren. Bin gespannt auf deine Rückmeldung.
mfg Piet
Sub Suchen()
Dim Suchbegriff$, erste$, c As Range, r As Range
Suchbegriff = InputBox("bitte Suchbegriff eingeben", , "")
If Suchbegriff = Empty Then Exit Sub
Set r = Columns("A")
Set c = r.Find(What:=Suchbegriff, After:=Cells(1, 1), LookIn:=xlValues, _
LookAt:=xlWhole, SearchDirection:=xlNext, MatchCase:=False)
If Not c Is Nothing Then
'Rangebereich in B bis H ab gefundener Zelle
Set r = Range("B" & c.Row & ":H" & Rows.Count)
Set c = r.Find(What:=Suchbegriff, After:=Cells(c.Row, 2), LookIn:=xlValues, _
LookAt:=xlPart, SearchDirection:=xlNext, MatchCase:=False)
erste$ = c.Address
Do
c.Activate
'MsgBox mit gefundenem Wert
If MsgBox(c.Value & Chr(10) & "Weiter suchen?", vbYesNo, _
"  Suche: -> " & Suchbegriff) = vbNo Then Exit Sub
'MsgBox ohne gefundenen Wert
'If MsgBox("Weiter suchen?", vbYesNo, "  Suche: -> " _
& Suchbegriff) = vbNo Then Exit Sub
Set c = r.FindNext(c)
Loop Until c.Address = erste$
End If
Set c = Nothing: Set r = Nothing
MsgBox "Suchen Ende"
End Sub

Anzeige
AW: Wort suchen in Spalten
26.11.2018 18:57:00
Speedy
Hallo Piet.
Leider nein.
Nun schliesst der Code die Spalte "A" komplett von der Suche aus.
Wenn ich eine Zahl als Suchbegriff eingebe, sucht und findet er in Spalte "B - H" alles wo die Zahl vorkommt.
Doch wenn ich einen Text als Suchbegriff eingebe zb "peter" gibt er mir keinen Treffer zurück, obwohl
der Suchbegriff des öfteren in den Spalten "B - H" vorkommt.
Grüße Speedy
AW: Wort suchen in Spalten
27.11.2018 16:16:21
Piet
Hallo Speedy
mein Fehler, ich dachte in Spalte A soll nicht mehr gesucht werden. Probier bitte mal den neuen Code.
Dabei kommt mir jetzt im Augenblick eine wichtige Frage. Der neue Code sucht zuerst in der Spalte A den 1. W:ert als xlWhole, ganze Zelle! Dann schalte ich um auf xlPart. Ist das in Ordnung? Oder soll in der Spalte A generell die ganze Zelle gesucht werden, und in Spalte B-H nur Teilwörter.
Dann wird die Suche komplizierter, weil FindNext die Konditionen der vorherigen Suche übernimmt. Bei FindNext kann ich meines Wissens nicht bei der Suche umschalten auf xlWhole oder xlPart! Laesst sich auch programmieren, ist aber schwieriger.
Ich warte mal deine Antwort ab.
mfg Piet
Sub Suchen()
Dim Suchbegriff$, erste$, c As Range, r As Range
Suchbegriff = InputBox("bitte Suchbegriff eingeben", , "")
If Suchbegriff = Empty Then Exit Sub
Set r = Columns("A")
'suche zuerst ganze Zelle in Spalte A
Set c = r.Find(What:=Suchbegriff, After:=Cells(1, 1), LookIn:=xlValues, _
LookAt:=xlWhole, SearchDirection:=xlNext, MatchCase:=False)
If Not c Is Nothing Then
'Scuhlauf umschalten auf xlPart für Spalten A-H
Set c = r.Find(What:=Suchbegriff, After:=Cells(c.Row - 1, 1), LookIn:=xlValues, _
LookAt:=xlPart, SearchDirection:=xlNext, MatchCase:=False)
'Suchbereich von A-H neu festlegen
Set r = Range("A" & c.Row & ":H" & Rows.Count)
erste$ = c.Address   'First gefundene Adresse
Do
c.Activate
'MsgBox mit gefundenem Wert
If MsgBox(c.Value & Chr(10) & "Weiter suchen?", vbYesNo, _
"  Suche: -> " & Suchbegriff) = vbNo Then Exit Sub
'MsgBox ohne gefundenen Wert
'If MsgBox("Weiter suchen?", vbYesNo, "  Suche: -> " _
& Suchbegriff) = vbNo Then Exit Sub
Set c = r.FindNext(c)
Loop Until c.Address = erste$
End If
Set c = Nothing: Set r = Nothing
MsgBox "Suchen Ende"
End Sub

Anzeige
AW: Wort suchen in Spalten
27.11.2018 18:58:41
Speedy
Hallo Piet,
besten danke für den Code. Diese Lösung wäre für mich schon bestens, doch er gibt mir nach wie vor
keine Texteingabe als Treffer zurück.
Wenn ich eine Zahl als Suchbegriff eingebe liefert er mir die Treffer so wie ich es mir vorgestellt habe.
Für mich ist es nicht ersichtlich warum er die Textsuche ausklammert.
MfG Speedy
AW: Wort suchen in Spalten
27.11.2018 18:37:51
Piet
Hallo Speedy
ich habe das Makro noch mal ein wenig geaendert, bitte probier diese Version auch mal aus. Nimm die bessere ...
mfg Piet
Sub Suchen_neu()
Dim Suchbegriff As String, erste$, c As Range, r As Range
Suchbegriff = InputBox("bitte Suchbegriff eingeben", , "")
If Suchbegriff = Empty Then Exit Sub
Set r = Columns("A")
'suche zuerst Suchbegriff in Spalte A  (Teil String)
Set c = r.Find(What:=Suchbegriff, After:=Cells(1, 1), LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlRows, SearchDirection:=xlNext, MatchCase:=False)
'erweitere den Suchbereich auf Spalten A-H
Set r = Range("A" & c.Row & ":H" & Rows.Count)
If Not c Is Nothing Then
erste$ = c.Address
Do  '1.Loop für ganze Zelle in A finden
If c.Column = 1 And c.Value = Suchbegriff Then Exit Do
Set c = r.FindNext(c)
Loop Until c.Address = erste$
Do   '2. Loop um alle Begriffe in A-H finden
c.Activate
'MsgBox mit gefundenem Wert
If MsgBox(c.Value & Chr(10) & "Weiter suchen?", vbYesNo, _
"  Suche: -> " & Suchbegriff) = vbNo Then Exit Sub
'MsgBox ohne gefundenen Wert
'If MsgBox("Weiter suchen?", vbYesNo, "  Suche: -> " _
& Suchbegriff) = vbNo Then Exit Sub
Set c = r.FindNext(c)
Loop Until c.Address = erste$
End If
Set c = Nothing: Set r = Nothing
MsgBox "Suchen Ende"
End Sub

Anzeige
AW: Wort suchen in Spalten
27.11.2018 19:10:02
Speedy
hi Peit,
habe soeben den letztgesendeten Code laufen lassen.
Eingabe mit Zahl funktioniert
Eingabe mit Text kommt "Laufzeitfehler `91` Objektvariable oder With-Blockvariable nicht festgelegt"
AW: Wort suchen in Spalten
27.11.2018 19:19:58
Speedy
------> 'Suchbereich von A-H neu festlegen
Set r = Range("A" & c.Row & ":H" & Rows.Count)
erste$ = c.Address 'First gefundene Adresse


AW: Wort suchen in Spalten
28.11.2018 15:59:37
Piet
Hallo Speedy
ich sehe noch zwei dumme Flüchtigkeitsfehler. Bitte korrigieren.
Der Scuhbegriff sollte mit Dim Suchbegriff As Variant deklariert werden!
Die Set Anweisung gehört bitte hinter - IF Not c is Nothing, NICHT davor!!
Dann sollte es hoffentlich klappen. Würde mich freuen.
mfg Piet
   If Not c Is Nothing Then
'erweitere den Suchbereich auf Spalten A-H
Set r = Range("A" & c.Row & ":H" & Rows.Count)
erste$ = c.Address

Anzeige
AW: Wort suchen in Spalten
28.11.2018 20:45:06
Speedy
Hallo Piet
habe die Änderungen vorgenommen, aber wie gehabt .... er liefert mir keine Treffer bei Texteingabe.
Doch du konntest mir mit deinen Makros helfen.
Konnte mir dadurch einen Code zusammenfügen, der im Großen und Ganzen meinen Vorstellungen entspricht.
Ich danke dir für deine Mühe und Geduld.
Wünsche dir ein angenehmes und friedvolles Weihnachtsfest.
Speedy

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige