Ne pas supprimer liste de données dans une macro

Bonjour à tous,

J'ai créer une macro excel qui me permet de supprimer tout les boutons d'une feuille sauf 2. Cependant, sur la page en question, j'ai également 3 liste déroulantes de validation de données. Elles sont supprimées en même temps que tout les boutons alors que je souhaite les conserver. Voici le code vba :

Sub effacer_selection()

    Range("B13:L150").Select
    Selection.ClearContents

Dim sh As Shape
For Each sh In ActiveSheet.Shapes
    If Not sh.Name Like "Bouton1" And Not sh.Name Like "Bouton2" Then sh.Delete
Next sh

End Sub

Et une capture de mon problème:
Lorsque je clique sur le bouton '' effacer '' , ma macro s'exécute et supprime les boutons ci dessous. Cependant il supprimer également le petit bouton sur la droite de mes listes déroulantes et ainsi je ne peux plus les utiliser

capture

Cordialement

Bonjour Alex et bienvenu, bonjour le forum,

Un fichier aurait été mieux qu'un capture d'écran même si ton problème est bien expliqué. Je t'avoue que je découvre cette anomalie avec toi. Le pire c'est que la liste de validation de données perdure mais n'est plus utilisable...

Sinon, rien à voir avec ton problème mais, la règle d'or en VBA c'est d'éviter autant que tu le peux les Select ou Activate. ils ne font que ralentir l'exécution du code et sont source de nombreux plantages. Ton code modifié à tester :
Sub effacer_selection()
Dim sh As Shape

Range("B13:L150").ClearContents
For Each sh In ActiveSheet.Shapes
    If sh.FormControlType = xlButtonControl And Not sh.Name Like "Bouton1" And Not sh.Name Like "Bouton2" Then sh.Delete
Next sh
End Sub

Tout d'abord merci pour ta réponse,

Après test la nouvelle macro ne fonctionne pas . Je te joint mon fichier. L'onglet formulaire vas chercher des données dans l'onglet ENTRETIEN. Ensuite avec le bouton effacer j'efface ma sélection mais cela efface également mes listes qui me sont indispensables pour ma recherche.

J'apporte une petite précision à mon problème. Lorsque je relance mon fichier après sauvegarde, le triangle de sélection des listes réapparaît. Mais il suffit de cliquer sur le bouton effacer pour qu'ils disparaissent à nouveaux.

J'ai trouvé une solution à mon problème, en rajoutant ceci , les listes déroulantes ne sont plus affectées :

Dim sh As Shape

For Each sh In ActiveSheet.Shapes
   If Not (sh.Name Like "Drop Down*") And sh.Name <> "Bouton1" And sh.Name <> "Bouton2" Then sh.Delete

Next sh

Re,

Si ta solution fonctionne, garde la... J'avais trouvé aussi :

Sub effacer_selection()
Dim sh As Shape

Range("B13:L150").ClearContents
For Each sh In ActiveSheet.Shapes
    Select Case Left(sh.Name, 7)
        Case "Bouton1", "Bouton2"
        Case "Drop Do"
        Case Else
            sh.Delete
    End Select
Next sh
End Sub
Rechercher des sujets similaires à "pas supprimer liste donnees macro"