Microsoft 365 RÉSOLU Cases à cocher (active x) qui ne tiennent pas en place

capoiri1

XLDnaute Nouveau
Bonjour à tous :)
Alors voilà...
J'ai monté un document Excel avec des codes qui masquent/affichent des lignes tout dépendamment de si une case à cocher est active ou non.
Quand les lignes à masquer/afficher contiennent des cases à cocher, j'ai mis des codes pour que si les lignes sont masquées, les cases à cocher deviennent invisibles.
Tout marche comme sur des roulettes quand les éléments sont en place, mais le problème est lors de la réouverture du document...
Si je met comme Format de contrôle de case à cocher « Déplacer sans dimensionner avec les cellules » ou « Déplacer et dimensionner avec les cellules », à la réouverture du document soit elles ont disparus, soit elles sont « en motton » (dans le même tas, à un endroit autre d'où elles devraient être).
Si je met comme Format de contrôle de case à cocher « Ne pas déplacer ou dimensionner avec les cellules », le problème est que si tout n'est pas cocher (ce qui n'arrivera jamais lors de l'entrée des données de mes collègues), les cellules restent aux mêmes endroits que si tous les cases seraient cochées...
Des heures et des heures de travail et maintenant je panique un peu!!!
J'ai joint un fichier test. En vrai le document comporte environ 250 lignes et 90 cases à cocher, j'ai donc réduit le tout.
J'ai mis les cases à cocher sous le Format de contrôle « Ne pas déplacer ou dimensionner avec les cellules » pour que vous puissiez voir le format réel de ce que ça devrait être....
Bon week-end ;-)
 

Pièces jointes

  • Fiche d'analyse_forum.xlsm
    72.9 KB · Affichages: 15
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, capoiri1

Alors voilà, j'ai urgent besoin d'aide!
Mauvaise pioche
same player shoot again ;)

(voir la charte du forum)
[Pour tous] Point 3) et [Demandeur] point 2)

EDITION: Sinon pour ta question, il y a aussi la piste d'employer de fausses cases à cocher
(plus simple et plus léger)
Voir en bas de pas dans les Discussions similaires et/ou dans les archives du forum.
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @capoiri1 et bienvenue sur XLD :), bonjour @Staple1600.

Parce que c'est votre première intervention et que vous avez lu la charte :D (bien peu le font) un exemple de ce qu'on pourrait écrire en utilisant la suggestion de @Staple1600 . Le code est entièrement dans le module de la feuille "Fiche d'analyse". Quand on modifie l'état d'une case à cocher, les autres cases à cocher du groupe sont décochées. Un bouton a été ajouté pour décocher toutes les cases à cocher. Quelques commentaires ont été ajoutés au code.
 

Pièces jointes

  • capoiri1- Fiche d'analyse_forum- v1.xlsm
    32.8 KB · Affichages: 18
Dernière édition:

capoiri1

XLDnaute Nouveau
C'est hot, wow @mapomme ! Étant donné mon amateurisme, j'ai bien des heures à mettre afin de comprendre les codes dans le doc hihi!!!
Mais une réponse à la question suivante m'aiderait énormément :
Comment on fait pour associer l'objet Wingdings coché/non coché à un non comme ton «casecoche» ou «casepascoche» ?
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Comment on fait pour associer l'objet Wingdings coché/non coché à un non comme ton «casecoche» ou «casepascoche» ?

Sans doute voulez-vous évoquez les constantes odeCoche et codePasCoche ?

En fait il n'y a pas d'objet de type "Windings".

On utilise un subterfuge, une astuce, une ruse (mais qui se révèle être assez pratique). On représente une case cochée par le caractère ASCII de code 254 et la case décochée par le caractère ASCII 111.
On utilise pour dessiner une case, une cellule de police Windings. Dans cette cellule, on y insère soit le caractère de code ASCII 254 (pour simuler une case cochée) soit le caractère de code ASCII 111 (pour simuler une case décochée)

Pour résumer, si je veux simuler une case cochée (décochée), il me faut :
  • une cellule avec Windings comme police
  • y insérer le caractère de code 254 si je veux une case cochée
  • ou y insérer le caractère de code 111 si je veux une case décochée
Plutôt que d'écrire tout au long du code les valeurs 111 ou 254 (qui sont peu parlantes), on définit au niveau du module deux constantes avec des noms arbitraires mais qui rappellent à quoi ils sont relatifs: case cochée ou case non cochée.

voir au début du code:
VB:
'code des caractères "Wingdings" coché/pas coché
Const codeCoche = 254, codePasCoche = 111
Ainsi plutôt que d'écrire le caractère chr(111) ou chr(254), on écrit chr(codePasCoche) ou chr(codeCoche) mais on aurait pu s'en passer. Je trouve que le code est plus lisible.
 

capoiri1

XLDnaute Nouveau
Ok c'est vraiment super... Ça marche et c'est vraiment hot!
Ma dernière question... Si je met ça :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("F30").Chr(codecoche) Then
[213:218].EntireRow.Hidden = True
Else: [213:218].EntireRow.Hidden = False
If Range("F31").Chr(codecoche) Then
[213:218].EntireRow.Hidden = True
Else: [213:218].EntireRow.Hidden = False
If Range("F32").Chr(codecoche) Then
[219:236].EntireRow.Hidden = True
Else: [219:236].EntireRow.Hidden = False
End If
End Sub

Qu'est-ce qui cloche? En fait on me dit que c'est : Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Mais je sais pas trop quoi faire... Est-ce que c'est en fait le reste du code qui cloche?

Si j'ai cette réponse, je serais en mesure de terminer mon document et serai la fille la plus reconnaissante et heureuse de monde :D

MÀJ : Finalement, j'ai trouvé toute seule comme une grande fille ET je suis vraiment CONTENTE! Merci de m'avoir aider!!!!!!! @mapomme @Staple1600
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonsoir.
Information. J'ai découvert assez récemment des codes qui n'obligent pas à utiliser la police Wingdings :
☑ Excel: =UNICAR(9745) VBA: = ChrW$(&H2611)
☐ Excel: =UNICAR(9744) VBA: = ChrW$(&H2610)
☒ Excel: =UNICAR(9746) VBA: = ChrW$(&H2612)
✔ Excel: =UNICAR(10004) VBA: = ChrW$(&H2714)
✕ Excel: =UNICAR(10005) VBA: = ChrW$(&H2715)

Par contre c'est une grosse surprise que le premier apparaisse ici en blanc sur fond bleu dans une image de bouton !
 
Dernière édition:

Discussions similaires