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

Microsoft 365 Case à cocher apparait si une autre case est cochée

  • Initiateur de la discussion Initiateur de la discussion dacunha
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dacunha

XLDnaute Junior
Bonjour,
J'aimerais que vous puissiez m'aider dans la construction de mon tableau Excel.
En effet, j'ai différentes cases à cocher et j'aimerais que certaines n'apparaissent que si l'une des cases des cellules D6 à D9 sont elles-mêmes cochées (une seule d'entre elles).
Auriez-vous une solution à me proposer?
Je vous remercie.
 
Solution
Re

@dacunha
Essaie ceci pour la date
(donc il faut de nouveau remplacer la macro évènementielle
Code:
'dernière version 13/4/25 - 19h00
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x, v_al
If Not Intersect(Range("B:D"), Target) Is Nothing Then '-< ici modif
If Target.Count > 1 Then Exit Sub
Select Case Target.CellControl.Type
Case xlTypeCheckbox
If Target.Value = False Then Exit Sub
For i = 3 To [datas].Columns.Count Step 2
x = Target.Address(0, 0)
If IsError(Application.Match(x, Feuil2.ListObjects(1).DataBodyRange.Columns(1), 0)) Then Exit Sub
If Not IsEmpty(Application.VLookup(x, [datas], i, 0)) Then
v_al = InputBox(Application.VLookup(x, [datas], i - 1, 0))
Select Case IsDate(v_al)
Case True
Range(Application.VLookup(x, [datas], i...
Bonjour,
Merci pour ce tuto. J'ai réussi, regarde


J'ai continué le test en ajoutent la cases B11, d'abord dans le tableau DATA puis la case à cocher en Feuil1. Ca fonctionne aussi !





Je suis trop contente d'avoir réussi. Merci pour toutes tes explications.

Le seul petit hic, c'est que j'obtiens (et même avant d'ajout la ligne B11 et la case B11), une erreur

Lors de mon test, j'ai remarqué que la question 3 n'était pas posée malgré qu'elle soit sur le DATA, je n'ai pas le popup qui s'ouvre.

Merci

 

Pièces jointes

  • 1744284327300.png
    63.4 KB · Affichages: 9
  • 1744284351627.png
    47 KB · Affichages: 8
Dernière édition:
Bonsoir le fil

@dacunha
Bravo! La persévérance et la curiosité payent toujours 😉

Comme je le disais, c'est juste une ébauche.
Il faut voir maintenant si mon raisonnement sera applicable sur ton fichier réel (avec tes 38 cases à cocher)

L'erreur que tu décris survient quand tu cliques sur quelle case à cocher ?
 
Bonsoir,
Oui la persévérance est importante !
Je pense que cela sera adapté à mes besoins. Ce qui est aussi important, c'est qu'en fonction des cas, et donc du bouton radio coché, certaines cases apparaissent et d'autres non. Puis, en fonction des cases B6 à B9, suivant celle qui est cochée, le reste des cases apparait ou non.
Il faudra que j'essaie ensuite de voir si en mettant les infos actions et contacts à droite des cases à cocher (colonnes F et H de mon fichier exemple), ce qui serait le plus facile visuellement pour la personne qui traite le dossier, les informations des colonnes F et H restent bien visibles malgré le masquage des cases à cocher (en fonction de ce qui a été coché par les boutons radios puis ensuite par les cases B6 à B9.
L'erreur se produit une fois comme suit :
1 - je clique sur une case, n'importe laquelle pour mon exemple B8
2 - je réponds aux questions (la 3eme n'apparait pour l'instant pas)
3 - je décoche B8
4 - puis je coche une autre case B7 par exemple et j'obteiens ceci :

5 - je clique ensuite sur débogage et là j'otiens ceci :

Voici le fichier.
Merci

 
Re

@dacunha
Remplace le code présent dans la feuille 1 par celui-ci
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x
If Not Intersect(Columns(2), Target) Is Nothing Then
If Target.Count > 1 Then Exit Sub
Select Case Target.CellControl.Type
Case xlTypeCheckbox
If Target.Value = False Then Exit Sub
For i = 3 To [datas].Columns.Count Step 2
x = Target.Address(0, 0)
If IsError(Application.Match(x, Feuil2.ListObjects(1).DataBodyRange.Columns(1), 0)) Then Exit Sub
If Not IsEmpty(Application.VLookup(x, [datas], i, 0)) Then
Range(Application.VLookup(x, [datas], i, 0)) = InputBox(Application.VLookup(x, [datas], i - 1, 0))
End If
Next
Case Else
'
End Select
End If
End Sub
Ensuite ajoute d'autres cases à cocher sur la feuille 1 et remplis le tableau datas en conséquence

Exemple
 
Bonjour,
Je viens de modifier le code de la Feuil1 et j'ai ajouté des cases. Tout fonctionne parfaitement.
J'ai essayé de mettre des cases en D6, D7..., j'ai complété le DATA avec les questions mais je n'obtiens pas les questions hormis si elles sont dans la colonne B.
Un petit bémol concernant le format date, elles s'écrivent à l'envers. Par exemple, si je saisie 01/05/2025 j'obtiens 05/01/2025.
Merci
 
Dernière édition:
Bonjour le fil

@dacunha
Donc si tu as bien compris le principe de fonctionnement
Si le tableau [data] est bien rempli
Si les cases à cocher sont dans les bonnes cellules, cela devrait fonctionner.

PS: Cette macro Nouveau_WBK n'était qu'une aide pour créer un fichier exemple.
Une fois 'exemple créé, il faut la supprimer.

NB: je viens d'ouvrir ta PJ de message#48
Ce n'est pas le bon code qui est dans la feuille 1 (qui chez toi se nomme ZCOUP)

Il faut mettre le code VBA que j'ai publié dans le message#50
 
Bonjour,
Oui, j'ai bien mis le bon code (j'ai du me tromper de fichier. Le voici).



Lorsque je coche par exemple D6, je n'obtiens pas les questions. Chez toi, cela fonctionne? Si oui, j'ai dû faire une bêtise

Je te joins mon fichier.

J'ai également commencé à réaliser mon fichier définitif. J'ai créé toute la base DATA, j'ai remis certaines formules concernant mes données et je suis très contente du rendu. Sur ce fichier également, j'ai bien mis le Nouveau_WBK et j'ai les mêmes symptômes que sur mon fichier Test, seules les cases en colonne B fonctionnent.
Les seules choses que je n'ai pas réussi à faire sur ce fichier définitif, c'est de :
1 - Créer la macro RESET car, lorsque j'utilisais les cases à cocher du menu développeur mon code fonctionnait mais avec les cases d'Excel 365 (insertion), ce dernier ne veut pas fonctionner et le RESET ne fonctionne pas.
VB:
Sub decoche_tout()
For Each coche In ActiveSheet.Shapes
    If coche.Name Like "Check*" Then coche.ControlFormat.Value = False
Next coche
End Sub
J'ai tenté plusieurs codes mais en vain.
2 - Faire en sorte que certaines cases ne soient pas visibles lorsque je coche la case B6 par exemple.
J'ai tenté une solution via la mise en forme conditionnelle, en disant mettant cette formule :


La couleur est identique à celle des cases et masque donc visuellement parlant la case mais la case reste toujours cliquable. Je suppose qu'il y a mieux et plus simple mais pour l'instant je n'ai pas trouvé. J'envisage donc de créer pour chaque case, cette même formule conditionnelle. Mon but étant de verrouiller ou masquer les cases par exemple B7 à B9 dès lors où j'ai coché B6. Aussi, en premier lieu ce sont les boutons radios que je dois sélectionner qui devraient faire apparaitre, pour l'un, les cases B6 à B9 et pour l'autre les cases D6 à D10. Puis en cochant D6, les autres cases du dessous devraient apparaitre. Je ne sais pas si cela est possible?

3 - Pour le format date, le problème est identique sur mon fichier test et sur mon fichier définitif. Lorsque j'écris le 01/05/2025 j'obtiens 05/01/2025.

Merci pour ton aide
 
Dernière édition:
Re

Test OK sur mon PC pour cette macro de RAZ
VB:
Sub R_A_Z()
Dim ws As Worksheet, c As Range
Set ws = Worksheets("ZCOUP")
For Each c In ws.UsedRange
    If Not c.CellControl Is Nothing Then
        If c.CellControl.Type = xlTypeCheckbox Then
            c.Value = False
        End If
    End If
Next c
End Sub

Sinon il faut remplacer (ou adapter) une nouvelle fois la procédure la macro événementielle
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'version du 13/4/25
Dim x
If Not Intersect(Range("B:D"), Target) Is Nothing Then '-< ici modif
If Target.Count > 1 Then Exit Sub
Select Case Target.CellControl.Type
Case xlTypeCheckbox
If Target.Value = False Then Exit Sub
For i = 3 To [datas].Columns.Count Step 2
x = Target.Address(0, 0)
If IsError(Application.Match(x, Feuil2.ListObjects(1).DataBodyRange.Columns(1), 0)) Then Exit Sub
If Not IsEmpty(Application.VLookup(x, [datas], i, 0)) Then
Range(Application.VLookup(x, [datas], i, 0)) = InputBox(Application.VLookup(x, [datas], i - 1, 0))
End If
Next
Case Else
'
End Select
End If
End Sub
 
Re,
Super ! le RAZ fonctionne et la procédure de la macro événementielle fonctionne également. Maintenant lorsque je clique sur une case de la colonne D, les questions sont biens présentes.
Pour le format date, as-tu une idée? En fait, si le résultat est une date, je souhaiterai que le format soit DD/MM/YYY. Dans le DATA, mes colonnes D et F ne comportent que des questions qui attendent comme réponse une date.
Que penses-tu de passer par la mise en forme conditionnelle pour masquer les cases? Existe t-il un moyen différent?
Merci
 
Dernière édition:
Re

Je ne sais pas .
Est-ce vraiment nécessaire qu'elles soient masquées ,
Masquée oui mais là j'ai réussi en jouant avec la mise en forme conditionnelle mais cela n'empêche pas de cliquer sur la case, d'où l'idée de verrouiller la case ou de faire en sorte qu'elle soit inactive. Si par cas, je laisse ainsi, c'est déjà bien.
Et pour le format date, as-tu une idée? En fait, si le résultat est une date, je souhaiterai que le format soit DD/MM/YYY. Dans le DATA, mes colonnes D et F ne comportent que des questions qui attendent comme réponse une date.
Merci
 
Re

@dacunha
Voila pour les masquer
VB:
Sub RAZ_Bis()
Dim ws As Worksheet, c As Range
Set ws = Worksheets("ZCOUP")
For Each c In ws.UsedRange
    If Not c.CellControl Is Nothing Then
        If c.CellControl.Type = xlTypeCheckbox Then
            c.Value = False
            c.Interior.Color = vbWhite
            c.Font.Color = vbWhite
        End If
    End If
Next c
End Sub
Mais comment tu fais pour les retrouver ensuite si tu veux de nouveau les cocher ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

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