je ne comprends pas pourquoi le code suivant m'enlève la petite flèche qui donne accès aux menus déroulants ??
VB:
Private Sub RESET_Click()
Dim s As Shape
For Each s In ActiveSheet.Shapes
s.Delete
Next s
End Sub
Une fois le code exécuté, les cellules qui contiennent les menus déroulants sont pourtant toujours bien paramétrées, mais impossible de faire apparaître la petite flèche à droite des cellules correspondantes !?
Re : VBA : Pourquoi la commande Shape.Delete efface mes listes déroulantes ???
Bonjour MichD et klin89,
klin89 ta proposition n'efface rien (et ne génère pas d'erreur de code) donc je ne sais pas comment l'adapter.
MichD, effectivement ActiveSheet.DrawingObjects.Delete a l'air de bien fonctionner mais ça m'efface mes boutons. J'ai essayé de faire avec ce code là mais mon piètre niveau en VBA ne me permet pas de déterminer ce qui génère des erreurs :
VB:
Private Sub RESET_Click()
For Each DrawingObjects In ActiveSheet.DrawingObjects Then
If DrawingObjects.Name <> "RESET" Then
DrawingObjects.Delete
End If
Next DrawingObjects
End Sub
Re : VBA : Pourquoi la commande Shape.Delete efface mes listes déroulantes ???
| effectivement ActiveSheet.DrawingObjects.Delete a l'air de bien fonctionner mais ça m'efface mes boutons
Tu n'as pas précisé ce que tu veux effacer. Quels sont ces contrôles ? Ma ligne de code fait seulement ce que la petite procédure devait faire, c'est-à-dire supprimer tous les objets dans la feuille. Sauf que ta procédure affecte les listes déroulantes et les commentaires de la feuille de calcul tandis que la ligne de code ne touche pas à ces objets. À toi de PRÉCISER ce que tu veux supprimer.
'-----------------------------------------
Private Sub RESET_Click()
Dim s As Shape
For Each s In ActiveSheet.Shapes
s.Delete
Next s
End Sub
'-----------------------------------------
Re : VBA : Pourquoi la commande Shape.Delete efface mes listes déroulantes ???
Bonjour le fil,
Choops,
Change le nom de la variable de la boucle For( DrawingObjects est la collection des DrawingObject (sans s) de la feuille). Surtout que ton code est dans le module de la feuille.
PrivateSub RESET_Click()
ForEach O In ActiveSheet.DrawingObjects Then If O.Name <> "RESET"Then O.Delete Next O
Re : VBA : Pourquoi la commande Shape.Delete efface mes listes déroulantes ???
Bonjour MichD, je voudrais supprimer toutes les checkboxes de la feuille active en cliquant sur un bouton comme montré dans Effacement.xlsm attaché en 1er post. Le problème du code en 1er post est que cela m'enlève les flèches des menus déroulants.
Merci d'avance !
Re : VBA : Pourquoi la commande Shape.Delete efface mes listes déroulantes ???
Une autre façon de faire :
Private Sub RESET_Click()
Dim S As Shape
For Each S In ActiveSheet.Shapes
If TypeName(S.OLEFormat.Object) = "CheckBox" Then
S.Delete
End If
Next
End Sub