XL 2010 Macro pour décocher toutes les cases à cocher d'une feuille

rosabelle

XLDnaute Junior
Bonjour,

J'aurais besoin d'un coup de pouce :

Sur une feuille j'ai une multitude de cases à cocher.
Pour remettre à zéro cette feuille j'ai besoin entre autres de décocher toutes ces cases en une seule fois.
Quel serait le code qui chercherait toutes les cases à cocher de la feuille et les mettrai en "décoché" systématiquement que l'utilisateur les ait cochées ou pas.
J'ai tenté avec visual basic mais il ne se passe rien.
Merci par avance ;)
 

Pièces jointes

  • Test effacer toutes les cases à cocher de la feuille.xlsm
    17.1 KB · Affichages: 9
Solution
Re

Pour commodité de lecture, je remets le code posté jadis dans la discussion citée dans celle-ci
VB:
Sub test_I()
'coche tous les types de CheckBox
Application.ScreenUpdating = False
Cochez True
End Sub
Sub test_II()
'décoche tous les types de CheckBox
Application.ScreenUpdating = False
Cochez False
End Sub

Private Sub Cochez(statut As Boolean)
Dim c As Object
With ActiveSheet
    .CheckBoxes.Value = statut
    For Each c In .OLEObjects
    If TypeName(c.Object) = "CheckBox" Then c.Object.Value = statut
    Next c
End With
End Sub

rosabelle

XLDnaute Junior
Re

soan
Peu importe le code qui sera choisi

Moi, je vais mal dormir, si cette contre-vérité reste publiée sur le forum
(Oui, je parle de celle qui "me nargue" depuis 10h07 ce matin)

Je sais mon code fonctionnel, je voudrais donc avant de me brosser les dents et d'enfiler mon pyjama que Rosabelle corrige le message#4 en l'éditant.
Pour enfin (après avoir copier/coller le bout manquant (là je suppute ;)) -> voir message#11) qu'elle arrive à faire fonctionner mon VBA.

Ainsi j'aurais le sommeil léger et le teint frais demain matin. ;)
Dors paisiblement @Staple1600 , ton code fonctionne à merveille.
Celui de @soan était plus court et correspondait à ce que je voulais faire: uniquement décocher les cases en effet .
Je l'en remercie encore mais ensuite il y a eu le hic dans mon fichier.
Et tout compte fait le tien avec la partie "cocher toutes les cases" s'avère en effet utile car plutôt que de tout recocher pour tester le code "décocher" c'est bien pratique de l'avoir aussi.

Peux-tu m'expliquer ce que veut dire, hum enfin après une bonne nuit de sommeil bien mérité !

Private Sub Cochez(statut As Boolean)
Dim c As Object
With ActiveSheet
.CheckBoxes.Value = statut
For Each c In .OLEObjects
If TypeName(c.Object) = "CheckBox" Then c.Object.Value = statut
Next c
End With
End Sub

Encore merci merci merci à vous
 

rosabelle

XLDnaute Junior
Re

=>rosabelle
Tu peux expliquer comment tu as testé le code du message#3, stp ?
Car je n'arrive pas à reproduire l'erreur que tu as mis en copie d'écran.

Sauf si il manque dans le module cette partie du code VBA
VB:
Private Sub Cochez(statut As Boolean)
Dim c As Object
With ActiveSheet
    .CheckBoxes.Value = statut
    For Each c In .OLEObjects
    If TypeName(c.Object) = "CheckBox" Then c.Object.Value = statut
    Next c
End With
End Sub
Bonjour,
Comme je l'avais dit dans mon post 4 j'avais mis uniquement une partie du code uniquement 🥵🥵🥵 ce qui explique que ça ne fonctionnait pas :

Sub test_II()
'décoche tous les types de CheckBox
Application.ScreenUpdating = False
Cochez False
End Sub

Encore merci
Bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 949
Membres
101 851
dernier inscrit
vaiata