Anzeige
Archiv - Navigation
1764to1768
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

Range.Find funktioniert nicht

Range.Find funktioniert nicht
08.06.2020 08:43:34
Simon
Hallo zusammen,
ich möchte folgendes Umsetzen:
- Ich habe verschieden Buttons (Shapes), die ich drücken kann, in denen ein Thema steht (GF_Thema genannt im Code)
- Durch drücken der Buttons wird eine Funktion aufgerufen (GF_Finden). Diese ruft wiederum eine Funktion auf, die den alternativeText des Shapes in einen String (also GF_Thema) in GF_Finden übergibt.
- Anschließend möchte ich mit der Range.Find Methode das GF_Thema in einer Tabelle finden.
Folgendes Problem:
- ich bekomme die Meldung, dass das Thema nicht gefunden wurde, obwohl der übergebene String korrekt ist und er auch im richtigen Tabellenblatt schaut.
- Wenn ich einen String deklariere und das gesuchte Thema per Hand reinschreibe und dann danach suche, funktioniert es.
- Ich habe schon versucht den alternativeText im selben Sub zu deklarieren und auch diesen Cstr als String zu Casten. Beides mit dem selben Ergebnis.
Habt ihr noch eine Idee, woran das liegen kann, dass mein gesuchter String nicht gefunden wird.
Vielen Dank im Voraus
Simon
Public Sub GF_Finden()
Dim rgFound As Range
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Worksheets("Referenz")
Call ThemaAuswählen(GF_Thema)
Debug.Print ws.Name
Debug.Print GF_Thema
Set rgFound = Range("B:B").Find(What:=GF_Thema, LookIn:=xlValues, LookAT:=xlPart,  _
SearchDirection:=xlNext)
'Bei der suche muss eigentlich ein Filter gesetzt werden, oder man löscht alle (aus DU..) in  _
den Spalten
If rgFound Is Nothing Then
MsgBox ("Thema: " & GF_Thema & " nicht gefunden")
Exit Sub
Else
MsgBox ("Thema:" & GF_Thema & " in Zeile:" & rgFound.Address & " gefunden")
End If
End Sub

Public Sub ThemaAuswählen(ByVal GF_Thema As String)
Dim sh As Shape
Set sh = ActiveSheet.Shapes(Application.Caller)
GF_Thema = sh.AlternativeText
End Sub

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
richtiges Tabellenblatt?
08.06.2020 09:09:35
Tino
Hallo,
wird oder muss die suche auf dem aktiven Tabellenblatt durchgeführt werden?
Gruß Tino
AW: richtiges Tabellenblatt?
08.06.2020 09:20:57
Simon
Hi Tino,
ja, das ist mir auch gerade eingefallen, habe es dann per ws.select nach dem Set ws ausgewählt. Aber trotzdem selbes Ergebnis. :(
AW: richtiges Tabellenblatt?
08.06.2020 09:24:45
Tino
Hallo,
versuch mal

Set rgFound = ws.Range("B:B").Find(What:=GF_Thema, LookIn:=xlValues, LookAT:=xlPart,  _
SearchDirection:=xlNext)
oder mal Beispiel hochladen!
Gruß Tino
AW: Range.Find funktioniert nicht
08.06.2020 09:25:42
Daniel
Hi
Liefert denn das "Debug.Print GF_Thema" den gewünschten Text?
Wenn ja, wenn du im Blatt "Referenz" suchen willst, müsstest du das bei der Suche auch angeben:
Set rgFound = ws.Range("B:B").Find(What:=GF_Thema,
Ansonsten suchst du im aktiven Blatt.
Gruß Daniel
Anzeige
AW: Range.Find funktioniert nicht
08.06.2020 09:53:53
Simon
Hi,
habe ws.Range versucht. Selbes Ergebnis. Ja, Debug.Print liefert das richtige Ergebnis.
Und ne Beispiel Datei kann ich im Anschluss mal hochladen.
Witzige an der Sache ist, dass ich in einer anderen range.find Methode einen anderen Wert suche, im selben Tabellenblatt, und es funktioniert.
AW: Range.Find funktioniert nicht
08.06.2020 10:10:49
Simon
Scheint so als hätte ich mein Passwort vergessen :P und weiß auch nicht, wie ich das ändern kann bzw. wo.
Habe die Datei woanders hochgeladen. Ihr könnt sie über den Link runterladen.
https://filehorst.de/d/dmsFzxxn]Datei von filehorst.de laden
Anzeige
AW: Range.Find funktioniert nicht
08.06.2020 11:00:46
UweD
Hi
du hast noch ein Return in der Tastenbezeichnung
Das kann er dann in B:B nicht finden, weil dort die Texte Ohne Return hinterlegt sind.
LG UweD
AW: Range.Find funktioniert nicht
08.06.2020 11:03:46
UweD
so ginge es

Public Sub ThemaAuswählen(ByRef GF_Thema As Variant)
Dim sh As Shape
Set sh = ActiveSheet.Shapes(Application.Caller)
GF_Thema = Replace(CStr(sh.AlternativeText), Chr(10), "")
End Sub

LG UweD
Anzeige
AW: Range.Find funktioniert nicht
08.06.2020 11:04:04
Tino
Hallo,
in GF_Thema ist noch am ende ein Zeilenumbruch CHR(10) enthalten .
Gruß Tino
AW: Range.Find funktioniert nicht
08.06.2020 11:10:38
Daniel
Die Fehlerursache wurde ja schon geklärt.
aber warum gehst du hier so umständlich über die Sub?
das Ermitteln des Suchtextes ist ein Einzeiler, den kann man auch direkt im Hauptmakro unterbringen.
GF_Thema = ActiveSheet.Shapes(Application.Caller).AlternativeText
Gruß Daniel
AW: Range.Find funktioniert nicht
08.06.2020 12:18:15
Simon
Hallo zusammen,
super das funktioniert jetzt, Dankeschön :D
Ja das habe ich auch später vor. Ist nur ein großes Projekt und sehr komplex und ich teile mir lieber erstmal alles auf und schaue später, was ich zusammenbringen kann und wie ich das am besten mache.
VG
Simon
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige