Comment suprimer une forme automatique en VBA

Le
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à, 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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #5442421
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


LSteph
Le #5442411
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


crolegoogle
Le #5442391
Merci le groupe je vais de suite me mettre à l'oeuvre


bonne soirée

A plus sur le groupe
Cordialement
Crole
MichDenis
Le #5442361
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





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
crolegoogle
Le #5442351
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
LSteph
Le #5442261
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

Publicité
Poster une réponse
Anonyme