Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1728to1732
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

Frage zur Suchfunktion

Frage zur Suchfunktion
22.12.2019 09:16:52
Christian
Hallo,
mal eine kurze Frage. Wie kann ich die Suchfunktion so einsetzen, dass zu der Zeile gesprungen wird, die auf /4659 endet, sprich z.b. die Zeile die auf /46590 oder /46591 endet übersprungen wird?
Danke
Christian
Version 2019

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Frage zur Suchfunktion
22.12.2019 09:54:16
Matthias
Hallo
Userbild
Gruß Matthias
AW: Frage zur Suchfunktion
22.12.2019 11:31:12
Christian
Hallo Matthias, ich meinte dass der Text auf /4659 endet. Alles was davor kommt ist in jeder Zeile identisch. Die Zellinhalte unterscheiden sich nur durch die Zahl am Ende.
Ich weiß natürlich dass ich das ganze über eine Hilfsspalte und der rechts Formel lösen kann, genauso wie ich es lösen kann in dem ich die Tabelle entsprechend sortiere. Mich hat es halt interessiert ob es auch ohne Umwege direkt über die Einstellungen der Suchfunktion lösen lässt.
Gruß
Christian
Anzeige
AW: Frage zur Suchfunktion
22.12.2019 15:20:07
Werner
Hallo Christian,
so?
Sub gehe_zu()
Dim raFund As Range, strSuche As String
strSuche = "*4659"
With Worksheets("Tabelle3")
Set raFund = .Columns("J").Find(what:=strSuche, LookIn:=xlValues, lookat:=xlWhole)
If Not raFund Is Nothing Then
raFund.Select
Else
MsgBox "Suchbegriff nicht gefunden."
End If
End With
Set raFund = Nothing
End Sub
@Piet:
Wieso mit Find Next?
So wie ich es verstanden habe, soll doch die Fundzelle angesprungen werden. Also entweder gibt es den gesuchten Wert in der Spalte, dann wird der erste Treffer angesprungen, Find Next ist also nicht nötig. Oder es gibt den Suchbegriff halt nicht.
So habe ich es zumindest verstanden.
Gruß Werner
Anzeige
Du suchst aber nicht nach "/4659" ! owT
22.12.2019 17:11:25
Matthias
AW: Du suchst aber nicht nach "/4659" ! owT
23.12.2019 11:59:23
Werner
Hallo Matthias,
stimmt, ich habe den Slash nach dem Jokerzeichen vergessen.
Trotzdem stellt sich mir die Frage warum mit Find Next? Ist doch unnötig.
Wenn ich das falsch sehe wäre ich um eine Erhellung dankbar.
Gruß und schöne Weihnachten, Werner
AW: Du suchst aber nicht nach "/4659" ! owT
23.12.2019 12:49:15
Piet
Hallo Werner
jetzt wo ich in der Beispieldatei die genauen Daten sehe hast du Recht. FindNext ist da unnötig!
Beim Entwickeln wusste ich aber nicht wie der Datensatz aussieht? Ob die Daten sortiert sind oder wild durcheinander sind. Haette er uns das angegeben und gesagt die Daten sind sortiert waere das klar gewesen. Und diese Angabe hat uns auch gefehlt, die vorgestellten "/" - https://www.ms.com/title/1
mfg Piet
Anzeige
AW: Frage zur Suchfunktion
22.12.2019 11:24:16
Piet
Hallo Christian
sollte dein Beispiel nur der Teil eines Strings sein, wirst du mit Ganze Zelle = xlWhole scheitern.
Um das mit xlPart auszuwerten müssten wir den ganzen String kennen, was davor steht und ob noch was danach kommt? Der Suchlauf ist wesentlich komplizierter, aber sehr interessant. Ich mache mir aber erst Gedanken dazu nach deiner Rückmeldung. - Frohe Weihnachten und ein gutes neues Jahr ...
mfg Piet
AW: Frage zur Suchfunktion
22.12.2019 11:56:31
Piet
Hallo christian
mit diesem Code, in ein normales Modul kopieren und per Button starten kannst du jeden Text bzw. Teiltext suchen! Du musst bei dir nur die richtige Spalte bei beiden Set Anweisungen angeben. Zum Testen war es bei mir Spalte "A". Eingabe über Variable oder eine InputBox, wie du willst ....
Frohe Weihnachten und ein gutes neues Jahr für dich und deine Familie ....
mfg Piet
Sub Teilstring_suchen()
Dim rFind As Range, Adr1 As String
Dim SuchTxt As Variant, Strg
SuchTxt = "/4659"   'so als Variable oder über InputBox!!
SuchTxt = InputBox("Bitte den Suchtext eingeben")
If SuchTxt = Empty Then Exit Sub
Set rFind = Columns("A").Find(What:=SuchTxt, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchDirection:=xlNext, MatchCase:=False)
If rFind Is Nothing Then MsgBox SuchTxt & "  nicht gefunden!": Exit Sub
Adr1 = rFind.Address
Do  'durchsucht alle Zellen nach Suchtext
Strg = Mid(rFind, InStr(rFind, "/"))  'Teilstring laden
If Len(Strg) = Len(SuchTxt) And Strg = SuchTxt Then
MsgBox Strg & " - steht in Zelle " & rFind.Address(0, 0)
End If
Set rFind = Columns("A").FindNext(rFind)
Loop Until Adr1 = rFind.Address
End Sub

Anzeige
AW: Frage zur Suchfunktion
22.12.2019 12:04:06
Piet
Nachtrag
Entschuldige, du wolltest die Zelle ja direkt anspringen. Dann bitte mit diesem Code:
Sub Teilstring_suchen()
Dim rFind As Range, Adr1 As String
Dim SuchTxt As Variant, Strg
SuchTxt = "/4659"   'so als Variable oder über InputBox
SuchTxt = InputBox("Bitte Suchtext eingeben", , "/4659")
If SuchTxt = Empty Then Exit Sub
Set rFind = Columns("J").Find(What:=SuchTxt, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchDirection:=xlNext, MatchCase:=False)
If Not rFind Is Nothing Then
Adr1 = rFind.Address
Do  'durchsucht alle Zellen nach Suchtext
Strg = Mid(rFind, InStr(rFind, "/"))  'Teilstring laden
If Len(Strg) = Len(SuchTxt) And Strg = SuchTxt Then
rFind.Select
MsgBox Strg & " - steht in Zelle " & rFind.Address(0, 0)
Exit Sub
End If
Set rFind = Columns("J").FindNext(rFind)
Loop Until Adr1 = rFind.Address
End If
MsgBox SuchTxt & " - nicht gefunden!": Exit Sub
End Sub

Anzeige
AW: Frage zur Suchfunktion
22.12.2019 15:36:55
Christian
Hallo Piet, war grad am testen und hab mich gewundert, weshalb es nicht geklappt hat, teste dann gleich mal das neue Makro.
Danke
PS er sagt er würde den String nicht finden, egal welche Zahl ich nehme...
bist Du auch wirklich in Spalte("J") unterwegs ?
22.12.2019 17:08:10
Matthias
Hallo,
Der Code von Piet funktioniert doch, hab ich getestet.
Stehen Deine Daten nicht in J, dann ändere das im Code
statt: Columns("J")
eben: Columns("A")
!das steht 2x im Code, also auch 2x ändern!
Gruß Matthias
Funktioniert trotzdem nicht
22.12.2019 17:29:45
Jenny
Hier mal als Bsp Datei
hab versucht /9 als Suchbegriff einzugeben,
welches ja die Endung von Zelle A9 ist.
Er sagt trotzdem dass nichts gefunden wurde...
https://www.herber.de/bbs/user/133922.xlsm
Gruß
Christian
Anzeige
AW: Danke an Matthias ...
22.12.2019 22:21:54
Piet
Hallo
Danke an Matthias, mein Fehler, falsch programmiert! Ich hatte nicht mit so vielen "/" im Text gerechnet.
Mit strg = Mid(rFind, InStrRev(rFind, "/")) - oder mit SuchTxt wie bei Matthias klappt es!
Frohes Weihnachtsfest an Christian und an alle Kollegen ...
mfg Piet

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige