Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1816to1820
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
Text in Autoformen(Shapes) suchen
01.03.2021 13:01:16
Alexandro
Hallo,
habe den unten aufgeführen Code ausprobiert, (aus diesem Forum).
leider zeigt bei mir eine (fett) Fehlermeldung 1004 Laufzeitfehler. Anwendungs- oder objektdefinierter Fehler.
Was könnte der Grund sein? Bin bei Fehlern nicht so gut...
Frohe mich, wenn jemand hilft
Grüße
Alexandro
Sub searchInForms()
Dim objShp As Object, objWS As Worksheet
Dim strSearch As String
strSearch = InputBox("Suchbegriff eingeben")
If Len(strSearch) Then
For Each objWS In ThisWorkbook.Worksheets
For Each objShp In objWS.shapes
    If InStr(1, objShp.TextFrame.Characters.Text, strSearch, vbTextCompare) Then
Application.Goto objShp.TopLeftCell, True
If MsgBox("Weitersuchen?", vbYesNo) = vbNo Then Exit Sub
End If
Next
Next
End If
End Sub


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

Betreff
Datum
Anwender
Anzeige
AW: Text in Autoformen(Shapes) suchen
01.03.2021 13:25:32
Nepumuk
Hallo Alexandro,
das steigt bei den DropDown-Pfeilen von Gültigkeitsprüfungen aus.
Teste mal:
Sub searchInForms()
    Dim objShp As Shape, objWS As Worksheet
    Dim strSearch As String
    
    strSearch = InputBox("Suchbegriff eingeben")
    
    If strSearch <> "" Then
        For Each objWS In ThisWorkbook.Worksheets
            For Each objShp In objWS.Shapes
                With objShp
                    If .Type <> msoFormControl Then
                        If InStr(1, .TextFrame.Characters.Text, strSearch, vbTextCompare) Then
                            Application.Goto .TopLeftCell, True
                            If MsgBox("Weitersuchen?", vbYesNo) = vbNo Then Exit Sub
                        End If
                    End If
                End With
            Next
        Next
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: Text in Autoformen(Shapes) suchen
01.03.2021 13:54:45
Alexandro
Hallo Nepumuk,
Danke für die Hilfe,
leider immer noch der gleiche Fehler in der gleichen Zeile :(
If InStr(1, .TextFrame.Characters.Text, strSearch, vbTextCompare) Then
Gruß
Alexandro

AW: Text in Autoformen(Shapes) suchen
01.03.2021 13:59:29
Nepumuk
Hallo Alexandro,
lass dir mal den Typ ausgeben:
Sub searchInForms()
    Dim objShp As Shape, objWS As Worksheet
    Dim strSearch As String
    
    strSearch = InputBox("Suchbegriff eingeben")
    
    If strSearch <> "" Then
        For Each objWS In ThisWorkbook.Worksheets
            For Each objShp In objWS.Shapes
                With objShp
                    Debug.Print .Type
                    If .Type <> msoFormControl Then
                        If InStr(1, .TextFrame.Characters.Text, strSearch, vbTextCompare) Then
                            Application.Goto .TopLeftCell, True
                            If MsgBox("Weitersuchen?", vbYesNo) = vbNo Then Exit Sub
                        End If
                    End If
                End With
            Next
        Next
    End If
End Sub

Und poste den letzten Typ bei dem das Makro aussteigt.
Gruß
Nepumuk

Anzeige
AW: Text in Autoformen(Shapes) suchen
01.03.2021 14:30:55
Alexandro
Hallo Nepumuk,
Super vielen vielen Dank! hat funktioniert!!!
habe ganz neue Excel-Datei erstellt und den Code ausprobiert. (somit ist die Typanweisung nicht nötig:)
Wüsstet du vlt. noch wie ich die jeweilige Autoform /Atotext anspreche, so dass durch die Suche das "gefundene" Objekt angezeigt wird? bzw. Text von diesem Objekt selektiert wird?
Ich habe eine Dashboard mit vielen Autoformen, und damit man diese Formen schnell findet, ist die Suche da.
Hoffentlich ist es nicht zu sehr unangenehm für dich mir zu helfen.
Ich bin aber dennoch jetzt schon sehr dankbar!!
Grüße
Alexandro

Anzeige
AW: Text in Autoformen(Shapes) suchen
01.03.2021 14:46:25
Nepumuk
Hallo Alexandro,
sorry, aber da habe ich keinen Plan.
Gruß
Nepumuk

Viele Autoformen (Shapes) auf einem Blatt?
02.03.2021 03:43:39
Luc:-?
Oder sind das mehrere Blätter, Alexandro?
Ist Letzteres nicht der Fall, müsstest du auch nicht alle Blätter durchsuchen! Und wenn du erst mal das richtige Shape-Objekt gefunden hast, wüsstest du auch seinen Namen und das Auslesen seines TextInhalts sollte dann auch kein Problem mehr sein, denn dafür liegt schon lange eine UDF im Archiv bereit. Bei Autoformen mit Text, Textfeldern, Kommentaren und ZellInhalten bzw -Fmln klappt das auch in einer ZellFml.
Sind die Namen der Shapes gleichartig und nur flfd (möglichst ohne Lücken) nummeriert, kann man mit zusätzlichen UDFs auch erreichen, dass alle einer TextSuche unterzogen wdn und die Namen derjenigen im Ergebnis angezeigt wdn, die diesen (Teil-)Text enthalten. Damit könntest du dann mit einem separaten Pgm entweder die .TopLeftCell oder aber das ganze Shape markieren bzw temporär umfärben oder in 3d hervorheben. Auch die TextWiedergabe in Zellen oder die Kopie des Shapes in einen bestimmten Bereich wäre so möglich, ggf auch das WegBewegen inkl Rückführung, was aber das Ganze nur unnötig komplizeren würde. Das musst und kannst du selber entscheiden, falls deine Shapes zur ZielGruppe der UDF gehören und sich alle auf einem Blatt befinden.
Mit einfachen Textfeldern fktioniert der Such- und NamensangabePart jedenfalls sehr gut. Alles darüber hinaus wäre dann deine Aufgabe. Aber gerade das scheint ja das verbliebene Problem zu sein, das aber keines wäre, falls du nur den Text des/der gefundenen Shapes anzeigen wolltest.
Morhn, Luc :-?
„Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige