Effacer des zones de texte

  • Initiateur de la discussion Initiateur de la discussion maval
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

maval

XLDnaute Barbatruc
Bonjour

Voilà j'ai environ 100 zones de texte nommer "ZT-01, ZT-02 ect.." grouper sur une feuille et je suis à la recherche d'un code pour effacer le contenu des zone de texte.

J'ai comme code ceci:

Code:
Sub Efface()
Dim Sh As Shape
For Each Sh In ActiveSheet.Shapes
'pour ne pas effacer le bouton
If Left(Sh.Name, 2) = "ZT" Then Sh.OLEFormat.Object.Text = "" 'TextFrame.Characters.Text = ""
Next
End Sub

Mais sa me supprime les zone de texte alors que je veux juste effacer leurs contenus
Je vous remercie d'avance
 

Pièces jointes

Re : Effacer des zones de texte

Bonjour, maval, le Forum,

Peut-être ainsi (à tester sur une copie...) :

Code:
Option Explicit
Sub Zones_de_texte_vider()
    Dim s As Shape
    ActiveSheet.Shapes.Range(Array("Groupe_Pays")).Select
    Selection.ShapeRange.Ungroup
    For Each s In ActiveSheet.Shapes
        If s.Type = 17 And s.Name Like ("ZT*") Then
            s.Select
            Selection.Characters.Text = ""
        End If
    Next s
End Sub

A bientôt 🙂
 
Re : Effacer des zones de texte

Bonjour doublezero et bonne année,

Je te remercie mais il y a un petit souci, lorsque j'efface les zone texte sa supprime Groupe_Pays et sa me donne un message d'erreur sur la ligne de code "L'élément portant ce nom est introuvable"
Code:
 ActiveSheet.Shapes.Range(Array("Groupe_Pays")).Select

Je pense que se ne doit pas être trop compliquer

Merci
 
Re : Effacer des zones de texte

Re-bonjour, et... bonne année, également 🙂,

... lorsque j'efface les zone texte sa supprime Groupe_Pays et sa me donne un message d'erreur sur la ligne de code "L'élément portant ce nom est introuvable"
Code:
 ActiveSheet.Shapes.Range(Array("Groupe_Pays")).Select

Je pense que se ne doit pas être trop compliquer...

Vider chaque zone de son contenu sans dégrouper... je ne sais comment procéder.

Regrouper chaque zone à l'issue... je ne sais comment procéder.

Attendons le secours des artistes 😱 d'XLD.

A bientôt 🙂
 
Re : Effacer des zones de texte

Bonjour,
il ne me semble pas qu'il y ait nécessité de grouper ou de dégrouper.
la macro Copie_ZT peut bien faire l'affaire : il suffit de copier du texte "vide" :
la shape n'est pas effacée elle est juste réduite à une largeur zéro car la propriété
.AutoSize = msoAutoSizeShapeToFitText
Code:
Sub Efface()
Dim Sh As Shape
For X = 1 To 99
   On Error Resume Next
   With ActiveSheet.Shapes("ZT-" & IIf(X < 10, "0" & X, X))
       .TextEffect.Text = ""
          End With
Next
End Sub
A+
 
Re : Effacer des zones de texte

Bonjour,
ça ne supprime rien du tout puisque ça remplace le texte par du vide.
La meilleure preuve est que si tu exécutes à nouveau la macro Copier elle s'éxécute normalement et la shape "Groupe_Pays" redevient visible.
Si tu veux qu'elle reste toujours visible il suffit de la sélectionner :
Code:
Sub Efface()
 Dim Sh As Shape
 For X = 1 To 99
    On Error Resume Next
    With ActiveSheet.Shapes("ZT-" & IIf(X < 10, "0" & X, X))
        .TextEffect.Text = ""
           End With
Next
ActiveSheet.Shapes("Groupe_Pays").Select
End Sub
(il n'est pas possible de lui donner une couleur !
A+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
13
Affichages
896
Réponses
26
Affichages
2 K
Retour