Case à cocher dont la coche ne s'actualise pas en fonction de son état

Bonsoir.

Le titre n'est pas super explicite.

J'ai un fichier comportant près de 80 colonnes et pour pouvoir en exploiter les données, j'ai créé un userform qui contient 80 cases à cocher dont les libellés correspondent aux "titres" des colonnes.
Je peux donc choisir, une par une, les colonnes que je souhaite voir affichées.

J'ai créé, en plus, un bouton "Masquer tout" (presque tout puisqu'il subsiste 4 colonnes) et un bouton "Afficher tout".

Le problème, c'est que lorsque je masque tout ou que j'ouvre un fichier avec des colonnes déjà masquées et que je lance mon userform, mes cases à cocher apparaissent toutes cochées.

J'aurais souhaité qu'une colonne masquée voit sa case à cocher respective décochée.

Je n'ai pas de problèmes sur la fonctionnalité d'affichage/"masquage" mais sur le côté visuel de mes cases à cocher.

J'ai tenté un test de vérification de l'état de ma case à cocher mais j'ai dû sûrement m'y prendre comme un manche.

Dans la capture ci dessous, on voit qu'au lancement du userform, toutes les cases sont toujours cochées même si la colonne en question est masquée.
Par contre, si je clique sur n'importe quelle case à cocher, selon que la colonne correspondante est masquée ou non, la case se cochera ou se décochera comme il faut. Mais il faut "l'actionner" manuellement avant.

case a cocher

Voici le même morceau de code que j'ai en partie écrit et en partie récupéré pour chacune des 80 cases à cocher:

Private Sub CheckBox5_Click()
Dim nombrecol As Integer
nombrecol = ActiveSheet.UsedRange.Columns.Count

If CheckBox5 = False Then

        For iDFP = 1 To nombrecol

                If ActiveSheet.Cells(1, iDFP).Value = CheckBox5.Caption Then ' teste la correspondance du "titre" de la colonne avec le caption de la case à cocher
                ActiveSheet.Columns(iDFP).Hidden = True 'masque la colonne dont le "titre" correspond au caption de la case à cocher
                Names.Add Name:="iDFP5", RefersTo:=iDFP 'stocke la valeur dans la variable iDFP5 et la conserve en mémoire même après l'arrêt de la Sub mais je ne sais plus à quoi ça sert
                Exit Sub
                End If
        Next

Else: iDFP = [iDFP5] 'Pourquoi entre crochets: rechercher pour comprendre
ActiveSheet.Columns(iDFP).Hidden = False

End If

End Sub

Merci d'avance pour vos lumières.

Bonne soirée.

Bonjour,

Fournir le fichier KIVABIEN avec au moins une ligne de donnée correcte afin de faire fonctionner le UserForm

A+

Bonjour.

Désolé.

Voici le fichier: la macro s'appelle "AFFICHE_COLONNE".

Merci et bonne matinée.

15case-a-cocher.xlsm (49.85 Ko)

Bonjour un p'tit up pour extraire mon message des méandres de l'oubli...

Bonsoir,

Le problème me semble assez peu soluble (de la manière dont tu t'y prends) donc je ne suis pas très motivé pour poursuivre sur ce sujet.

Tu en es déjà à plus de 2000 lignes de code et selon mon expérience le compilateur commence à couiner entre 2500 et 3000 lignes et dans ce cas VBA se croise définitivement les bras...

Il manque 5 ou 6 CheckBox dans la collection (76, 78, 79, 80, 81, 82...)

Il faudrait supprimer les frames et reprogrammer les Checkbox avec un module de classe pour arriver à quelque chose de crédible.

Aussi je préfère me retirer préventivement.

Ne soit pas déçu, en général quand je me retire, il y a souvent quelqu'un qui veut prouver que c'est malgré tout possible... Alors croise les doigts : C'est Noël tu auras peut-être une bonne surprise ! Dans le cas contraire tu sais déjà sous quel angle il faudrait envisager le problème...

A+

Bonsoir Galopin,

Pour une douche froide... c'est une douche froide !
En premier lieu, même si je suis déçu d'apprendre que je vais devoir tout recoder pour faire quelque chose de viable, je te remercie d'avoir pris le temps de répondre.

Le problème, quand tu es autodidacte et que tu ne te penches sur le code que lorsque le boulot le nécessite, c'est que tu ne fais pas les choses dans les règles de l'art.

  • Quand tu dis que mon code fait plus de 2000 lignes, c'est de l'ironie ou c'est vraiment vrai ?
    Je m'excuse pour cette question car je ne me rendais absolument pas compte que mon code était aussi... fourni (certes mal optimisé)
  • La notion de module de classe m'est encore un peu beaucoup abstraite.
  • Concernant les 5 ou 6 CheckBox manquantes, cela peut-il être gênant quelle que soit la situation ?
  • En quoi supprimer les frames peut-il être salutaire/salvateur ?
    D'ailleurs à quoi sert un frame si ce n'est que purement cosmétique ?
  • Enfin, accepterais-tu de me donner un exemple de code pour une seule cas à cocher s'il est possible de dissocier le code pour chaque case à cocher ?

Merci pour ces "bouts" de lumière qui me permettent d'avancer petit à petit.
Bonne soirée.

Je te fais un petit bout de réponse rapide parce que on est le 23 décembre hein... L'emploi du temps est un peu chaud ces jours ci !

Ci joint ton fichier un peu retravaillé j'ai supprimé la totalité du code contenant les Checkbox et mis le mien à la place

Bon tes boutons ne marchent plus mébon... YAPUKA les retravailler "grave" sur la base de ce que j'ai commencé...

Les cellules de la première ligne sont nommées définitivement "k" & le libellé de la première ligne : "kCSN", "kISN"... cela permet de les rattacher automatiquement à leur Checkbox sans tenir compte de leur position dans la feuille. Elles sont rattachées par leur nom et le caption des CheckBox et NON par leur N° de colonne.

Ce qui évite de foutre le b... si une colonne est déplacée.

Tu verras que le masquage démasquage est pris en compte. J'ai également viré les frames qui ne servent plus qu'à décorer le sapin.

Pour l'utilité des frames et leur propriétés on verra ça plus tard... Je ne veux pas te faire un roman aujourd'hui. On verra ça l'an prochain...

Joyeux Noel

A++

EDIT : Pour le nombre de lignes c'était une évaluation approximative... Si on compte environ 30 lignes par écran, il faut compter 70 scroll pour arriver au bout... Ça nous mets pas loin du compte...

Re... Dans cette seconde version j'ai un peu améliorés les boutons 1, 2 et 3 mais il subsiste dans mon esprit un doute sur les 2 colonnes RFS et SPC donc j'ai pas approfondi...

Pour les 3 derniers boutons on pourrait sans doute bâcler ça en 10 lignes mébon ce n'est pas le plus urgent...

A+

Rechercher des sujets similaires à "case cocher coche actualise pas fonction etat"