Vérifier si un texte à été ajouté à une forme excel

Résolu
julien_guy Messages postés 9 Date d'inscription mardi 23 novembre 2004 Statut Membre Dernière intervention 3 octobre 2007 - 23 mai 2007 à 22:23
julien_guy Messages postés 9 Date d'inscription mardi 23 novembre 2004 Statut Membre Dernière intervention 3 octobre 2007 - 28 mai 2007 à 20:54
Bonjour,

j'ai un problème sur excel.

j'ai des formes (shape) dans mon classeur excel et je veux vérifier si un texte a été ajouté à ma forme.

Par exemple j'ai des rectangles ou des cercles (des formes office),  sur certain des textes ont été ajoutés et sur d'autre non.

(Pour info les textes sont ajouté sur la forme en faisant un clic droit et ajouter texte)

Comment distinguer ces deux types de forme ?

j'ai testé la solution suivante
'######################################
Dim Forme as Shape
Set Forme = Selection.ShapeRange.Item(1)
MsgBox Forme.characters.count
'######################################

Si la forme a du texte d'inséré, le code marche sinon j'ai une erreur :

erreur d'exécution '1004':

Impossible de lire la propriété Count de la classe Characters.

merci d'avance

Julien

2 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 22
24 mai 2007 à 00:30
Je ne sais pas si ceci peut t'aider, mais bon...
Les Shapes ne sont pas des objets simples avec lesquels travailler.
Pour éviter le genre d'erreur que tu reçois, tu peux utiliser On Error Resume Next qui permet de sauter les erreurs rencontrées dans certains traitements. Ce genre de manipulation est à proscrire en général, mais quelquefois, comme dans le cas des Shapes, c'est assez difficile de s'en passer...

    Dim Shp As Shape
   
    On Error Resume Next  'nécessaire à cause de tous les différents types de Shape
   
    For Each Shp In ActiveSheet.Shapes
        If Shp.OLEFormat.Object.Text <> "" Then
            MsgBox "La forme " & Shp.Name & " contient le texte " & Shp.OLEFormat.Object.Text
        End If
    Next

Et il y a certainement moyen de mieux faire...

MPi
3
julien_guy Messages postés 9 Date d'inscription mardi 23 novembre 2004 Statut Membre Dernière intervention 3 octobre 2007
28 mai 2007 à 20:54
merci beaucoup pour la réponse, j'avais déjà songé à cette solution et pour le moment j'en ai pas trouvé d'autre.

C'est vrai que les formes offices sont assez mal géré par VB.

Merci encore

Julien
0
Rejoignez-nous