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...)
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
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" <michel@Suppgaboly.com> a écrit dans le message de news:3FB8F5EE.456EAE6E@Suppgaboly.com...
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" <michel@Suppgaboly.com> a écrit dans le message de news:3FB8DEBA.62237821@Suppgaboly.com...
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...)
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...)