Supprimer certains objets d'une feuille sauf d'autres

Bonjour

sur ma feuille de calcul je possède des boutons de type formulaire et une zone de texte , je souhaiterai en enregistrant ma feuille

supprimer tout mes boutons sauf la zone de texte et j'ai utilisé l’instruction suivante ::

For Each obj In ActiveSheet.Shapes
If obj.Type = msoFormControl And obj.Type <> Object.Text Then obj.Delete
Next obj

cela me renvoi l'erreur 424 "objet requis "

Comment puis je corriger cette instruction , en vous remerciant par avance ?

Bonjour,

Comme ceci ?

Option Explicit
Sub a()
Dim bouton As Shape
For Each bouton In ActiveSheet.Shapes
If bouton.Type <> 17 Then bouton.Delete
Next
End Sub

Cordialement.

Merci pour cette réponse Coquelicot , mais cela ne marche pas ma zone de texte reste toujours effacée avec les autres boutons apres copie ... mais que signifie "17" dans ton code ?


meme en ayant essayé ca ne marche pas non plus :

For Each obj In ActiveSheet.Shapes
If obj.Type = msoFormControl And obj.Type <> msoTextBox Then obj.Delete
Next obj
'*********

Re-bonjour,

Désolée, j'ai cru comprendre que les zones de texte devaient être préservées.

A tester :

Option Explicit
Sub a_v2()
Dim bouton As Shape
For Each bouton In ActiveSheet.Shapes
If bouton.Type <> 12 Or Not bouton.Name Like "TextBox*" Then bouton.Delete
Next
End Sub

mais que signifie "17" dans ton code ?

17 est le code du type d'objet.

Cordialement.

oui c'est bien ca ,les zones de texte doivent etre preservées....

Re-bonjour,

rocket4 a écrit :

oui c'est bien ca ,les zones de texte doivent etre preservées....

La seconde proposition est-elle ok ?

Cordialement.

J'ai testé ta seconde proposition mais cela ne marche pas ....merci quand meme pou les réponses apportées

Re-bonjour,

Je constate que vous utilisez Excel2002 : ceci explique, peut-être, le dysfonctionnement des codes.

Bon courage.

j'ai pu resoudre le probleme en ecrivant deux bout de code distincts :

 For Each obj In ActiveSheet.Shapes   ' pour mes boutons 
If obj.Type = msoFormControl Then obj.Delete
Next obj
'*******************
For Each img In ActiveSheet.Shapes   ' pour les formes 
   If img.Type <> msoTextBox Then img.Delete
    Next
'*********************

Merci quand même pour avoir pris le temps de vous pencher sur mon post .

Rechercher des sujets similaires à "supprimer certains objets feuille sauf"