Affichage texte condionner par 1 checkbox coché et 1 autre non
Bonjour a tous,
J'ai le tableau suivant.
J'ai 4 checkbox qui me permettent d'afficher ou non respectivement les colonnes D, E, F et G.
Check box 1 = Per 100g
Checkbox 2 = Per portion
Checkbox 3 = Per 100g+RI
Checkbox 4 = Per portion +RI
L'utilisateur affichera en standard la colonne D (j'aurais pu me passer de cette case à cocher, mais bon, ça ne mange pas de pain) car c'est une obligation réglementaire. Ensuite il peut en complément afficher a la carte la colonne E, F et G. Petite précision, cela n'a pas de sens d'afficher la colonne G si la colonne F ne l'est pas, mais on peut afficher la colonne F sans afficher la colonne G.
Pour approfondir et perfectionner le truc, idéalement, il faut afficher la ligne 5 lorsqu'on active la checkbox 3 ou 4. J'ai réussi plus ou moins a le faire, je m'explique.
Sur la checkbox 3, j'ai mis une condition de masquage de la ligne 5 ou pas selon que celle-ci est décochée ou cochée. ça donne ça
Private Sub CheckBox1_Click()
'Per 100g
If CheckBox1 = True Then
Sheets("Nutrition Facts EU").Columns("D:D").EntireColumn.Hidden = False
Else
Sheets("Nutrition Facts EU").Columns("D:D").EntireColumn.Hidden = True
End If
End Sub
Private Sub CheckBox2_Click()
'per portion
If CheckBox2 = True Then
Sheets("Nutrition Facts EU").Columns("F:F").EntireColumn.Hidden = False
Else
Sheets("Nutrition Facts EU").Columns("F:F").EntireColumn.Hidden = True
End If
End Sub
Private Sub CheckBox3_Click()
'per 100g + RI
If CheckBox3 = True Then
Sheets("Nutrition Facts EU").Columns("E:E").EntireColumn.Hidden = False
Sheets("Nutrition Facts EU").Rows("5:5").EntireRow.Hidden = False
Else
Sheets("Nutrition Facts EU").Columns("E:E").EntireColumn.Hidden = True
Sheets("Nutrition Facts EU").Rows("5:5").EntireRow.Hidden = True
End If
End Sub
Private Sub CheckBox4_Click()
'per portion + RI
If CheckBox4 = True Then
Sheets("Nutrition Facts EU").Columns("G:G").EntireColumn.Hidden = False
Else
Sheets("Nutrition Facts EU").Columns("G:G").EntireColumn.Hidden = True
End If
End SubSi je coche la checkbox 1 et 2, c'est bon, la ligne 5 est masquée. Je coche la 3, elle apparait, ça, c'est bon
.La ou je bloque c'est que du coup, en dessous de "Per portion of 40g", il y a marqué "%Reference Intake RI" alors que la checkbox 4 n'étant pas coché, ça n'a pas de sens de marquer ça. N'ayant pas coché la checklbox 4, je ne vois pas cette colonne et donc j'aimerais que cette mention n'apparaisse pas et ne soit visible que lorsqu'on cochera la checkbox 4.
J'ai pensé a appliqué une mise en forme couleur sur la cellule pour que la couleur des lettres soit blanche, mais j'ai pas dû m'y prendre correctement parce que ça bug
Voila ma tentative de code pour la checkbox 3 et 4 :
Private Sub CheckBox3_Click()
'per 100g + RI
If CheckBox3 = True Then
Sheets("Nutrition Facts EU").Columns("E:E").EntireColumn.Hidden = False
Sheets("Nutrition Facts EU").Rows("5:5").EntireRow.Hidden = False
Sheets("Nutrition Facts EU").Range(F5).Font.ColorIndex = 2
Else
Sheets("Nutrition Facts EU").Columns("E:E").EntireColumn.Hidden = True
Sheets("Nutrition Facts EU").Rows("5:5").EntireRow.Hidden = True
End If
End Sub
Private Sub CheckBox4_Click()
'per portion + RI
If CheckBox4 = True Then
Sheets("Nutrition Facts EU").Columns("G:G").EntireColumn.Hidden = False
Sheets("Nutrition Facts EU").Range(F5).Font.ColorIndex = 1
Else
Sheets("Nutrition Facts EU").Columns("G:G").EntireColumn.Hidden = True
End If
End SubIdéalement, le top du top, si on a seulement checkbox 1, 2 et 3 de cocher, ça serait génial de pouvoir fusionner les cellules F4:G5 (sachant que F4:G4 et F5:G5 sont déjà fusionnées ) et n'afficher que "Per portion of 40g", centré en hauteur et largeur dans la cellule et quand on coche la Checkbox 4 revenir a un afficher tel qu'il est maintenant, cad en F4:G4 "Per portion of 40g" et F5:G5 "%Reference Intake RI".
Je tiens à préciser que la valeur de "Per portion of 40g" peut changer. Cette expression est obtenue par concaténation selon la formule "=CONCATENER("Per portion of ";'Caloric Value'!F24;" g")".
Je suis désolé pour ce post si long, mais je voulais être le plus complet possible pour que vous compreniez bien ma problematique
À votre dispo si vous avez besoin de plus amples infos
Bonne journée à tous
Bastien
Bonjour à tous,
J'ai contourné le problème finalement en créant une colonne intermédiaire avec que le Per portion que je fais apparaitre ou disparaitre via les check box
J'ai mis une condition pour décocher la checkbox 2 quand la 4 est active et vice versa pour éviter d'avoir la colonne Per Portion et Per Portion+RI afficher en même temps
Private Sub CheckBox1_Click()
If CheckBox1 = True Then
Sheets("Nutrition Facts EU").Columns("D:D").EntireColumn.Hidden = False
Else
Sheets("Nutrition Facts EU").Columns("D:D").EntireColumn.Hidden = True
End If
End Sub
Private Sub CheckBox2_Click()
If CheckBox2 = True Then
CheckBox4.Value = False
Sheets("Nutrition Facts EU").Columns("F:F").EntireColumn.Hidden = False
Else
Sheets("Nutrition Facts EU").Columns("F:F").EntireColumn.Hidden = True
End If
End Sub
Private Sub CheckBox3_Click()
If CheckBox3 = True Then
Sheets("Nutrition Facts EU").Columns("E:E").EntireColumn.Hidden = False
Sheets("Nutrition Facts EU").Rows("5:5").EntireRow.Hidden = False
Else
Sheets("Nutrition Facts EU").Columns("E:E").EntireColumn.Hidden = True
Sheets("Nutrition Facts EU").Rows("5:5").EntireRow.Hidden = True
End If
End Sub
Private Sub CheckBox4_Click()
If CheckBox4 = True Then
CheckBox2.Value = False
Sheets("Nutrition Facts EU").Columns("G:H").EntireColumn.Hidden = False
Else
Sheets("Nutrition Facts EU").Columns("G:H").EntireColumn.Hidden = True
End If
End Sub