OVH Cloud OVH Cloud

Effacer les zones de texte

11 réponses
Avatar
François
Re-bonjour,

Denis Michon m'avait donné la proc suivante :

Sub EffacerContenuZoneDeTexte()

With Worksheets("Feuil1")
.Shapes("Zone de texte 1").OLEFormat.Object.Text = ""
End With

End Sub

... qui fonctionne très bien
Comment faire maintenant pour passer en revue tous les zones de texte
d'un classeur sans connaitre leur nom (Zone de texte 1, Zone de texte
957...)

Merci par avance
François

1 réponse

1 2
Avatar
Michel Gaboly
Re,

Par contre, le fait que l'explorateur d'objets est un outil puissant et souvent sous-employé, je le savais déjà ;-)))


Et en complément, ;-))

Si tu entres dans la case de saisie dans la fenêtre "Explorateur d'objets" l'expression MsoShapeType, Tu vas obtenir la
liste de toutes les constantes.. et si tu sélectionnes une de ces constantes, tu apercevras (un "P" juste pour faire
plaisir à JPS) dans le bas de la fenêtre l'équivalent numérique de la constante texte. La fenêtre "Explorateur
d'objets" révèle beaucoup de "secrets".

Salutations!

"Michel Gaboly" a écrit dans le message de news:
Bonjour Denis,

Merci de l'info ;-))


Bonjour Michel,

"Pour trouver le 17, que je ne connais pas par coeur "

Il y a une façon simple de faire :

Dim T As MsoShapeType
T = msoTextBox

Dès que tu écris "=" excel te propose dans une liste déroulante les constantes appropriées.

Au besoin, il est possible remplacé directement 17 par sa constante texte dans la procédure...

Salutations!

"Michel Gaboly" a écrit dans le message de news:
Bonjour,

Comme cela :

Sub EffaceZonesTexte()
Dim s As Shape
For Each s In ActiveSheet.Shapes
If s.Type = 17 Then s.OLEFormat.Object.Text = ""
Next s
End Sub

Pour trouver le 17, que je ne connais pas par coeur ;-)))
J'ai créé un classeur vierge, et déposé sur la première
feuille 2 zones de texte et un rectangle, puis j'ai lancé cette
procédure :

Sub TypeZonesTexte()
Dim s As Shape
For Each s In ActiveSheet.Shapes
Debug.Print s.Type
Next s
End Sub

NB - Pour voir le résulat dans la fenêtre "Exécution", il faut
utiliser le menu "Affichage" ou le raccourci clavier (Cmd + G
sur Mac, Ctrl + G sous Win).


Re-bonjour,

Denis Michon m'avait donné la proc suivante :

Sub EffacerContenuZoneDeTexte()

With Worksheets("Feuil1")
.Shapes("Zone de texte 1").OLEFormat.Object.Text = ""
End With

End Sub

... qui fonctionne très bien
Comment faire maintenant pour passer en revue tous les zones de texte
d'un classeur sans connaitre leur nom (Zone de texte 1, Zone de texte
957...)

Merci par avance
François


--
Cordialement,

Michel Gaboly
http://www.gaboly.com


--
Cordialement,

Michel Gaboly
http://www.gaboly.com


--
Cordialement,

Michel Gaboly
http://www.gaboly.com



1 2