Faire apparaitre une case à cocher si cellule non vide
Résolu
Thmoney-team
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
swande Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
swande Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
15 réponses
Bonsoir,
tes case à cocher sont bien des cases de la barre formulaire, pas des activex CheckBox
et cela concerne combien de contrôles (de cases à cocher)
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
tes case à cocher sont bien des cases de la barre formulaire, pas des activex CheckBox
et cela concerne combien de contrôles (de cases à cocher)
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Oui, se sont ceux dans l'onglet développeur sous l'option contrôle de formulaire. Pour ce qui est du nombre, je dirais une vingtaine.
Merci !
Merci !
Re,
il est possible d'écrire un code plus technique, mais certainement plus difficile à adapter. en supposant que ta colonne de saisie est le colonne B et que sur la ligne 3 tu crées une case à cocher nommée Case à cocher 3 (mais tu peux les renommer à ta guise
la ligne de code serait
If Target.Address(0, 0) = "B3" And Target <> "" Then Shapes("Case à cocher 3").Visible = True '
If Target.Address(0, 0) = "B3" And Target = "" Then Shapes("Case à cocher 3").Visible = False
si dessous un exemple pour gérer les cellules B3, B4, B5 et B6 pour des cases à cocher nommées Case à cocher 3, Case à cocher 4, Case à cocher 5 et Case à cocher 6
ce code est à placer dans les propriétés feuille (clic droit sur l'onglet de la feuille concernée/Visualiser le code
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Address(0, 0) = "B3" And Target <> "" Then Shapes("Case à cocher 3").Visible = True '
If Target.Address(0, 0) = "B3" And Target = "" Then Shapes("Case à cocher 3").Visible = False
If Target.Address(0, 0) = "B4" And Target <> "" Then Shapes("Case à cocher 4").Visible = True '
If Target.Address(0, 0) = "B4" And Target = "" Then Shapes("Case à cocher 4").Visible = False
If Target.Address(0, 0) = "B5" And Target <> "" Then Shapes("Case à cocher 5").Visible = True '
If Target.Address(0, 0) = "B5" And Target = "" Then Shapes("Case à cocher 5").Visible = False
If Target.Address(0, 0) = "B6" And Target <> "" Then Shapes("Case à cocher 6").Visible = True '
If Target.Address(0, 0) = "B6" And Target = "" Then Shapes("Case à cocher 6").Visible = False
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
il est possible d'écrire un code plus technique, mais certainement plus difficile à adapter. en supposant que ta colonne de saisie est le colonne B et que sur la ligne 3 tu crées une case à cocher nommée Case à cocher 3 (mais tu peux les renommer à ta guise
la ligne de code serait
If Target.Address(0, 0) = "B3" And Target <> "" Then Shapes("Case à cocher 3").Visible = True '
If Target.Address(0, 0) = "B3" And Target = "" Then Shapes("Case à cocher 3").Visible = False
si dessous un exemple pour gérer les cellules B3, B4, B5 et B6 pour des cases à cocher nommées Case à cocher 3, Case à cocher 4, Case à cocher 5 et Case à cocher 6
ce code est à placer dans les propriétés feuille (clic droit sur l'onglet de la feuille concernée/Visualiser le code
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Address(0, 0) = "B3" And Target <> "" Then Shapes("Case à cocher 3").Visible = True '
If Target.Address(0, 0) = "B3" And Target = "" Then Shapes("Case à cocher 3").Visible = False
If Target.Address(0, 0) = "B4" And Target <> "" Then Shapes("Case à cocher 4").Visible = True '
If Target.Address(0, 0) = "B4" And Target = "" Then Shapes("Case à cocher 4").Visible = False
If Target.Address(0, 0) = "B5" And Target <> "" Then Shapes("Case à cocher 5").Visible = True '
If Target.Address(0, 0) = "B5" And Target = "" Then Shapes("Case à cocher 5").Visible = False
If Target.Address(0, 0) = "B6" And Target <> "" Then Shapes("Case à cocher 6").Visible = True '
If Target.Address(0, 0) = "B6" And Target = "" Then Shapes("Case à cocher 6").Visible = False
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Re,
il faut commencer par créer tes cases à cocher et repérer leur noms ou les nommer ensuite tu colle ce code dans les propriétés de ta feuille et tu affectes dans le code une case à cocher à une référence de cellule
il faut commencer par créer tes cases à cocher et repérer leur noms ou les nommer ensuite tu colle ce code dans les propriétés de ta feuille et tu affectes dans le code une case à cocher à une référence de cellule
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Lorsque je ferme la fenêtre du vba, les cases à cocher ne disparaisse. Es ce que je dois les effacer ou ma formule est mal écrite ?
Voici mon classeur : https://www.cjoint.com/?3JjsoZ5uZPI
Merci !
Voici mon classeur : https://www.cjoint.com/?3JjsoZ5uZPI
Merci !
Re,
plusieur erreur, pour commencer ta première case à cocher n'est pas Case à cocher 1, mais la Case à cocher 274, le nom de la case s'affiche dans la barre d'adresse en haut à gauche de ta feuille lorsque tu fais un clic droit sur la case.
ensuite tu utilise la syntaxe
Private Sub Worksheet_Activate()
ce qui ne va pas avec le code fait pour la syntaxe
Private Sub Worksheet_Change(ByVal Target As Range)
alors que veux tu faire, que la case s'affiche ou se masque lorsque tu interviens colonne F ou faut il faire une boucle pour contrôler chaque cellule de la colonne F et agir en conséquence lorsque tu actives la feuille ou lancer la procédure avec un bouton
plusieur erreur, pour commencer ta première case à cocher n'est pas Case à cocher 1, mais la Case à cocher 274, le nom de la case s'affiche dans la barre d'adresse en haut à gauche de ta feuille lorsque tu fais un clic droit sur la case.
ensuite tu utilise la syntaxe
Private Sub Worksheet_Activate()
ce qui ne va pas avec le code fait pour la syntaxe
Private Sub Worksheet_Change(ByVal Target As Range)
alors que veux tu faire, que la case s'affiche ou se masque lorsque tu interviens colonne F ou faut il faire une boucle pour contrôler chaque cellule de la colonne F et agir en conséquence lorsque tu actives la feuille ou lancer la procédure avec un bouton
Re,
Si tes attentes sont satisfaites passe le statut de la discussion en résolu, ou confirme le moi que je le fasse pour toi
Si tes attentes sont satisfaites passe le statut de la discussion en résolu, ou confirme le moi que je le fasse pour toi
Bonjour,
J'ai sensiblement besoin de la même macro, mais j'ai une variante différente.
Je m'explique:
Cette macro fonctionne très bien en temps normal (cad que si j'entre manuellement dans la cellule cible B3 "1" la case à cocher apparaît et que si j'entre manuellement "0" dans la cellule B3, la case à cocher disparaît). Cependant, ma cellule B3 contient une formule "si" qui envoie comme réponse "1" ou "0" et pour une raison que j'ignore cette formule ne fait pas fonctionner la macro, malgré le fait que la formule renvoie le résultat 1 si vrai et 0 si faux.
Auriez-vous une autre solution à proposer?
Merci,
J'ai sensiblement besoin de la même macro, mais j'ai une variante différente.
Je m'explique:
Cette macro fonctionne très bien en temps normal (cad que si j'entre manuellement dans la cellule cible B3 "1" la case à cocher apparaît et que si j'entre manuellement "0" dans la cellule B3, la case à cocher disparaît). Cependant, ma cellule B3 contient une formule "si" qui envoie comme réponse "1" ou "0" et pour une raison que j'ignore cette formule ne fait pas fonctionner la macro, malgré le fait que la formule renvoie le résultat 1 si vrai et 0 si faux.
Auriez-vous une autre solution à proposer?
Merci,
Re,
Oui mais à part que tu n'as pas joint ton fichier, clic sur ce lien, puis sur parcourir pour sélectionner ton fichier, sur créer le lien et coller dans une réponse le lien généré
https://www.cjoint.com/
Oui mais à part que tu n'as pas joint ton fichier, clic sur ce lien, puis sur parcourir pour sélectionner ton fichier, sur créer le lien et coller dans une réponse le lien généré
https://www.cjoint.com/
Re,
Si je comprends bien ta demande, essaye avec ce code
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Address(0, 0) = "C3" And Target = 1 Then Shapes("Case à cocher 1").Visible = True '
If Target.Address(0, 0) = "C3" And Target <> 1 Then Shapes("Case à cocher 1").Visible = False
End Sub
si ce n'est pas ce que tu cherches, explique tes attentes
Si je comprends bien ta demande, essaye avec ce code
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Address(0, 0) = "C3" And Target = 1 Then Shapes("Case à cocher 1").Visible = True '
If Target.Address(0, 0) = "C3" And Target <> 1 Then Shapes("Case à cocher 1").Visible = False
End Sub
si ce n'est pas ce que tu cherches, explique tes attentes
Ce n'est pas tout à fait ça.
je remets un fichier avec exactement ce que j'aimerais et avec la bonne macro en fonction de la cellule D5. Je n'arrive pas à comprendre pourquoi la case à cocher n'apparaît pas étant donné que la cellule D5 <>""
https://www.cjoint.com/c/FBkvWeuakHf
je remets un fichier avec exactement ce que j'aimerais et avec la bonne macro en fonction de la cellule D5. Je n'arrive pas à comprendre pourquoi la case à cocher n'apparaît pas étant donné que la cellule D5 <>""
https://www.cjoint.com/c/FBkvWeuakHf
Re,
ton code ne peut fonctionner parce que l'action Worksheet_Change(ByVal Target As Range) qui se fait sur la cellule C3, C5 comme D5 n'est le résultat d'une formule, pas de l'action Change
ton code ne peut fonctionner parce que l'action Worksheet_Change(ByVal Target As Range) qui se fait sur la cellule C3, C5 comme D5 n'est le résultat d'une formule, pas de l'action Change
Re,
Supprime la formule en D5 inutile, remplace ton code par celui ci et teste
et si tu veux tester la cellule C3 ce qui est le plus logique parce que c'est cette cellule qui conditionne C5
Supprime la formule en D5 inutile, remplace ton code par celui ci et teste
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [C5] = "Amendement" Then Shapes("Case à cocher 1").Visible = True '
If [C5] <> "Amendement" Then Shapes("Case à cocher 1").Visible = False
End Sub
et si tu veux tester la cellule C3 ce qui est le plus logique parce que c'est cette cellule qui conditionne C5
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [C3] = 1 Then Shapes("Case à cocher 1").Visible = True '
If [C3] <> 1 Then Shapes("Case à cocher 1").Visible = False
End Sub
RE,
ce n'as rien à voir avec le code, Ctrl et Z correspond à Annuler dernière action et Ctrl et Y correspond à rétablir dernière action
encore une fois le code VBA n'a rien à voir avec ce problème redémarre ton ordi voir
ce n'as rien à voir avec le code, Ctrl et Z correspond à Annuler dernière action et Ctrl et Y correspond à rétablir dernière action
encore une fois le code VBA n'a rien à voir avec ce problème redémarre ton ordi voir
https://www.cjoint.com/c/FBlrfbqh4Jf
Je crois que ça avoir avec le code, car lorsque j'enlève la macro mon Ctrl Z fonctionne.... Par exemple dans le fichier, si dans le cellule B8, je mets 10 000$ et que je veux calculer selon un montant de 15 000$ pour ensuite revenir au 10 000$ je ne peux pas le faire avec un Ctrl Z (même Ctrl Y ne fonctionne pas).
J'ai déjà redémarrer l'ordi et testé sur un fichier vierge le Ctrl Z et tout fonctionne. Donc, j'ai du mal à expliquer le pourquoi.
Je crois que ça avoir avec le code, car lorsque j'enlève la macro mon Ctrl Z fonctionne.... Par exemple dans le fichier, si dans le cellule B8, je mets 10 000$ et que je veux calculer selon un montant de 15 000$ pour ensuite revenir au 10 000$ je ne peux pas le faire avec un Ctrl Z (même Ctrl Y ne fonctionne pas).
J'ai déjà redémarrer l'ordi et testé sur un fichier vierge le Ctrl Z et tout fonctionne. Donc, j'ai du mal à expliquer le pourquoi.