Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Effacer une zone de texte...

2024t3

XLDnaute Nouveau
Bonjour à tous,
J'ai créé une petite macro d'effacement de cellules avec ClearContents, mais je n'ai pu effacer que des cellules nommées, ex: D132,E24:F25...en effet dans ma page j'ai fusionné des cellules dans lesquelles j'ai inséré des zones de texte ( à l'aide de l'outil dessin) que j'aimerai effacer avec les cellules déja sélectionnées.
Je n'ai pas trouvé la référence de ces cellules ni d'infos s'y rapportant.
Si quelqu'un à une idée...
code de la macro :

Sub Effacer_tout()
Range('L1,D6,D7:L13,N7:N13,D14,D15:L32,N15:N32,D33,D34:L42,N34:N42').Select
Range('L42').Activate
Selection.ClearContents
Range('D6').Select
End Sub
 

galopin01

XLDnaute Occasionnel
bonjour,
il ya tout un tas de déclinaisons autour de Shapes
ActiveSheet.Shapes('Text Box 1').Cut
ActiveSheet.Shapes.Cut
Tout dépend si tu es plusieurs Shapes
Dans ce cas tu peux peut-être utilisé des Shapes nommées...
Ok ?
 
2

2024t3

Guest
roger,
j'essaye ça.
sinon tant pis pour la zone de texte, je la supprime et à la place je crée des cellules vides formatées...
c'est dommage quand même.
si t'as d'autres infos...
à plus
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour 2024T3 (Un Terminator ?) lol, Roger, le Forum

Et bien moi je propose ceci qui effacera les Shapes 'Zone de Texte' uniquement :

Code:
Sub TheShapeCleaner()
Dim WS As Worksheet
Dim i As Integer

Set WS = Sheets('Feuil1'Â'Â')

    For i = 1 To WS.Shapes.Count
    'MsgBox 'La Shape Index N° ' & i & ' se nomme ' & WS.Shapes(i).Name
        If UCase(Left(WS.Shapes(i).Name, 4)) = 'TEXT' Then
            WS.Shapes(i).TextFrame.Characters.Text = ''
        End If
    Next
End Sub

J'ai laissé en commentaire un test pour avoir le nom de tes shapes, qui normalement en Excel Français devrait aussi se nommer en nom automatique (si tu ne le changes pas manuellement * ) 'Text Box x' (pour les zones de texte)

Sinon dans la foulée, tu peux optimiser ton code 'd'effaçage' comme ceci directement sans faire de sélection (plus rapide, et moins feux d'artifice)

Code:
Sub Effacer_tout()
    Range('L1,D6,D7:L13,N7:N13,D14,D15:L32,N15:N32,D33,D34:L42,N34:N42'Â'Â').ClearContents
    Range('D6'Â'Â').Select
End Sub

Bon Week End
@+Thierry


* Sinon nommer tes Shapes une à une avec le quatres premières Lettres 'TEXT' (TEXTClient, TEXTCode, TEXTetc)

Message édité par: _Thierry, à: 12/03/2005 15:49
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…