Macro ne fonctionne pas dans tous les classeurs ?!?

Bonjour,

Pour résoudre un de mes soucis, un membre du forum m'a créé un code.

Il m'a envoyé un fichier test dans lequel ce code fonctionne parfaitement. Je copie/colle ce code dans mon projet (en modifiant les cellules visées) et là il m'indique erreur d'execution 438 Propriété ou méthode non gérée par cet objet pour la ligne "If shp.TextFrame.Characters.Text = x Then"...

J'ai essayé pas mal de choses, mais impossible de la faire fonctionner, vous auriez une idée ?

Sub FindShape()
Dim sht As Worksheet
Dim shp As Shape
Dim x As String
x = Worksheets("Plan-1").Range("BH4").Value
For Each sht In ActiveWorkbook.Worksheets
    For Each shp In sht.Shapes
        If shp.TextFrame.Characters.Text = x Then
            sht.Activate
            shp.Select
            ActiveWindow.ScrollRow = shp.TopLeftCell.Row
            ActiveWindow.ScrollColumn = shp.TopLeftCell.Column
            Exit For
        End If
    Next shp
Next sht
End Sub

Bonjour,

Peut-être essayer :

If shp.TextFrame2.TextRange.Characters.Text = x Then

J'ai un nouveau message d'erreur "La valeur tapée est en dehors des limites"

Je ne connais pas ton problème mais il me semblerait plus judicieux d'effectuer un test sur le nom de ta forme plutôt que sur le texte qui y figure :

If shp.Name ="..." Then

au lieu de

If shp.TextFrame.Characters.Text = x Then

Super tu as solutionné mon problème !

Mais je ne comprends toujours pas pour ce code fonctionne dans un classeur mais pas dans un autre...

Je te remercie !

Rechercher des sujets similaires à "macro fonctionne pas tous classeurs"