Suppression d'objets

Bonjour j'ai une question rapide :

ma feuille de calcul contient des bouton de formulaires et des listes derouantes dans certaines cellules , lorsque j'enregistre ma feuille dans un autre classeur les boutons figurant sur ma feuille doivent etre effacés via le bout de code suivant

For Each obj In ActiveSheet.Shapes
If obj.Type = msoFormControl Then obj.Delete
Next obj

jusque la tout va bien , mais par contre je ne souhaiterai pas que mes listes deroulantes contenues dans certaines cellules soient effacées aussi , comment pourrais je modifier le code precedent ,,merci à vous

Bonjour

une piste

For Each obj In ActiveSheet.Shapes

If obj.Type = msoFormControl Then
    If obj.Name <> "toto" Then obj.Delete
End If
Next obj

Salut tout le monde,

ou bien comme ca:

Application.CopyObjectsWithCells = False
'copier la feuille
Application.CopyObjectsWithCells = True 'reset

Pour supprimer tout sauf les listes

Sub Test()

    Dim oControle As Shape

    For Each oControle In Feuil1.Shapes

        If oControle.Type = msoFormControl Then 'Controles de formulaire
            If oControle.FormControlType <> xlDropDown Then oControle.Delete
        End If

        If oControle.Type = msoOLEControlObject Then 'Controle ActiveX
            If oControle.OLEFormat.progID <> "Forms.ComboBox.1" Then oControle.Delete
        End If

    Next oControle

End Sub

EDIT DE MON MESSAGE

Merci pour cette réponse très élaborée G Gauthier.

Je l essayer de ce pas, un grand merci à vous.

Merci Google et l'aide Microsoft surtout, j'ai pas sorti ça de mon chapeau magique

Rechercher des sujets similaires à "suppression objets"