Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment suprimer une forme automatique en VBA

6 réponses
Avatar
crolegoogle
Bonjour le groupe,

J'utilise Excel 2007
J'ai fait sur une feuille des formes automatique en forme de bouton
(ils sont jolis avec 2007)
Mais voil=E0, lorsque par l'action d'un de ses boutons la feuille active
se recopie, je souhaiterais suprimer 4 de ses formes.
Je cherche en faisans une macro mais rien ni fi.
Y-a-t'il une solution en VBA de les suprimer (seulement 4)
Ils ont comme nom "Rectangle =E0 coins arrondi 1,2,3,4"

Merci pour vos r=E9ponses
Cordialement
Crole

6 réponses

Avatar
JB
Bonsoir,


Sheets("planning").Shapes("Moshape").Delete 'un

Sheets("planning").DrawingObjects.Delete ' tous

Sub EffaceMentShapeChamp()
For Each s In ActiveSheet.Shapes
If Not Intersect(s.TopLeftCell, Range("$A$1:$D$20")) Is Nothing
Then
s.Delete
End If
Next s
End Sub

Liste des shapes :

Sub shapestype()
i = 2
For Each s In ActiveSheet.Shapes
Cells(i, 1) = s.Type
Cells(i, 2) = s.Name
i = i + 1
Next s
End Sub

JB





JB


On 13 avr, 18:43, wrote:
Bonjour le groupe,

J'utilise Excel 2007
J'ai fait sur une feuille des formes automatique en forme de bouton
(ils sont jolis avec 2007)
Mais voilà, lorsque par l'action d'un de ses boutons la feuille active
se recopie, je souhaiterais suprimer 4 de ses formes.
Je cherche en faisans une macro mais rien ni fi.
Y-a-t'il une solution en VBA de les suprimer (seulement 4)
Ils ont comme nom "Rectangle à coins arrondi 1,2,3,4"

Merci pour vos réponses
Cordialement
Crole


Avatar
LSteph
Bonjour,

En 2007 je sais pas mais sinon, en principe
pour supprimer distinctement certains shapes seulement , créer l'objet
par macro le nommer et ensuite utiliser ce nom pour le supprimer

plus simplement pour supprimer tous les rectangles voici une façon:


Dim s As Shape

For Each s In ActiveSheet.Shapes
If s.AutoShapeType = 5 Then s.Delete
Next


'lSteph

Bonjour le groupe,

J'utilise Excel 2007
J'ai fait sur une feuille des formes automatique en forme de bouton
(ils sont jolis avec 2007)
Mais voilà, lorsque par l'action d'un de ses boutons la feuille active
se recopie, je souhaiterais suprimer 4 de ses formes.
Je cherche en faisans une macro mais rien ni fi.
Y-a-t'il une solution en VBA de les suprimer (seulement 4)
Ils ont comme nom "Rectangle à coins arrondi 1,2,3,4"

Merci pour vos réponses
Cordialement
Crole


Avatar
crolegoogle
Merci le groupe je vais de suite me mettre à l'oeuvre


bonne soirée

A plus sur le groupe
Cordialement
Crole
Avatar
MichDenis
En supposant que tes contrôles ont les nom suivants :

Sub tesT()
arr = Array("Rectangle 1", "Rectangle 2", "Rectangle 3", "Rectangle 4")
With Worksheets("Feuil2") ' Nom feuille à adapter
For Each elt In arr
.Shapes(elt).Delete
Next
End With




a écrit dans le message de news:

Bonjour le groupe,

J'utilise Excel 2007
J'ai fait sur une feuille des formes automatique en forme de bouton
(ils sont jolis avec 2007)
Mais voilà, lorsque par l'action d'un de ses boutons la feuille active
se recopie, je souhaiterais suprimer 4 de ses formes.
Je cherche en faisans une macro mais rien ni fi.
Y-a-t'il une solution en VBA de les suprimer (seulement 4)
Ils ont comme nom "Rectangle à coins arrondi 1,2,3,4"

Merci pour vos réponses
Cordialement
Crole
Avatar
crolegoogle
Re Bonsoir le groupe,

J'ai fait un coller/copier du code de ISteph et cela fonction en
effacant complètement les chapes
Mais mon souci est que le Shapes "Accueil" et "Imprimer" devrais
rester sur la feuille
Je suis concient de la difficulté de ma requête mais ont ne sais
jamais.
Voici le code du Shapes (mais ils s'effacent tous)

Merci de m'éclairer sur les modifs à apporter
Cordialement
Crole


Sub CopieDevisClient()
ActiveSheet.Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Devis " & [H12].Value & " N° " &
ActiveSheet.TextBox1.Value
Dim s As Shape
For Each s In ActiveSheet.Shapes
If s.AutoShapeType = 5 Then s.Delete
Next
Sheets("Accueil").Select
End Sub
Avatar
LSteph
Bonsoir,


oui c'était écrit:
pour supprimer distinctement certains shapes seulement , créer l'objet par macro le nommer et ensuite utiliser ce nom pour le supprimer
...


+
Mais mon souci est que le Shapes "Accueil" et "Imprimer" devrais
rester sur la feuille


autre solution à integrer dans ton code:


Dim s As Shape
For Each s In ActiveSheet.Shapes
Select Case s.Name
Case "Accueil", "Imprimer"
'on fait rien
Case Else
If s.AutoShapeType = 5 Then s.Delete
End Select
Next

'...


'lSteph