Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Insertion case à cocher

Alain 79

XLDnaute Junior
Supporter XLD
Bonjour tout le monde,

J'ai un petit fichier (voir modèle joint) avec un tableau comprenant 3 colonnes. La 3éme colonne comprend une case à cocher.

Une fois que jai sélectionner les lignes souhaitées à l'aide de la case à cocher, et pour ne faire apparaître que ces lignes
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=3, Criteria1:= "VRAI"

Ensuite lorsque je veux faire réapparaître toutes les lignes, j'utilise la macro
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=3

Toutefois, je souhaiterais pouvoir remettre toutes les cases à cocher à "FAUX" soit lorsque je clique sur le bouton "TOUT" ou "FAUX".

Et c'est là que j'ai besoin de votre aide pour trouver la solution.
Par avance, je vous en remercie
Cordialement
 
Solution
Bonjour @Alain 79 , @fcyspm30 , à tous ,

Essayez :
VB:
Sub AfficherFAUX()
    ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=3, Criteria1:=CStr(False)
End Sub

Sub AfficherVRAI()
    ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=3, Criteria1:=CStr(True)
End Sub

Sub AfficherTout()
    ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=3
    ActiveSheet.ListObjects("Tableau1").ListColumns(3).DataBodyRange = False
End Sub

fcyspm30

XLDnaute Junior
Re,
Il suffit de cliquer sur le ou les boutons bleus pour ne faire apparaître que les lignes que l'on désire. Les cases à cocher c'est bien quand il n'y en a pas beaucoup car elles alourdissent le fichier.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Alain 79 , @fcyspm30 , à tous ,

Essayez :
VB:
Sub AfficherFAUX()
    ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=3, Criteria1:=CStr(False)
End Sub

Sub AfficherVRAI()
    ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=3, Criteria1:=CStr(True)
End Sub

Sub AfficherTout()
    ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=3
    ActiveSheet.ListObjects("Tableau1").ListColumns(3).DataBodyRange = False
End Sub
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Il te suffit de faire une macro qui boucle sur toutes tes cases à cocher et qui les décoche une par une.

Mais si la case à cocher marche dans les deux sens avec sa cellule associée, alors il suffit de mettre toutes les cellules de la colonne à FAUX.
(ce que fait la macro de mapomme que je salue)



L'idée des cases à cocher n'est pas forcément très bonne car, comme dit en #6, ça alourdi grandement le classeur.
 
Dernière édition:

Alain 79

XLDnaute Junior
Supporter XLD
Bonjour mapomme
Merci pour ta réponse, mais la macro "AffcheTout" ne m'affiche que les lignes non cochées et ne décoche par les cases cochées.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

@Alain 79 semblent utiliser la nouvelle fonctionnalité maintenant intégrée dans Excel 365 (Menu Insérer /Sous-menu Contrôle / Insérer Case à cocher) qui facilite l'utilisation des cases à cocher, leur alignement au sein de la cellule, leur maniement par VBA. En plus cela n'augmente pratiquement pas la taille du fichier.
Voir ce qu'en disent Rachid et Staple1600 ICI.
 
Dernière édition:

Alain 79

XLDnaute Junior
Supporter XLD
Oui exactement, j'utilise cette fonctionnalité et mon fichier n'est pas très volumineux car il ne va comportait qu'une cinquantaine de lignes.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Oui exactement, j'utilise cette fonctionnalité et mon fichier n'est pas très volumineux car il ne va comportait qu'une cinquantaine de lignes.
Pour le fun :
  • Classeur vide : 10 ko
  • Avec seulement 1 000 contrôles de formulaire type case à cocher, le classeur pèse 400 ko sans compter la lourdeur de manipulation.
  • Avec 100 000 (soit 100 fois plus) cases à cocher (nouvelle fonctionnalité de O365), le classeur pèse 300 ko.

Il n'y a pas photo !
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
344
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…