Cellule grisée d'une macro
Bonjour,
Tout d'abord, merci pour l'aide que vous pourriez m'apporter!
Je gère une petite grille de loto entre amis via excel, j'aimerai trouver une petite formule en B15 qui me permettrai d'afficher le nombre restant des cellules contenant des chiffres.
Le problème je grise les cellules en fonction des chiffre qui sont tombé au tirage du loto à l'aide d'une macro
en B15 lorsque je rentre la formule pour récupérer le code couleur de la cellule grisée (=couleur(B8) il me donne comme résultat:-4142)
je refais la même chose sur la cellule contenant uniquement un chiffre et pas de fond de couleur, il me donne également le même résultat. -4142
ce qui fait que quand je rentre ma formule pour compter les cellules non grisée ( =Compte_Couleurs(B2:B14;-4142) il me les comptes toute le résultat est de 13.
la seule technique que j'ai trouver est de mettre mes cellule non grisée avec un fond de couleur que je choisi via le ruban accueil exemple je choisi du bleu je récupère le code couleur qui est: =couleur(B2) comme résultat de code couleur j'ai 33
je reprend ma formule (=Compte_Couleurs(B2:B14;-4142) et je remplace par (=Compte_Couleurs(B2:B14;33) et la il m'affiche bien le résultat des cellule avec un fond bleu contenant des chiffre.
J'aimerai savoir pourquoi les cellules grisée via la macro, ont le même code couleur que les cellules qui n'ont pas de fond de couleur. Qu'elle formule pourrai-je faire pour compter les cellule non grisée sans devoir me servir de ma seule technique ici plus haut.
Je vous joint mon fichier, et je vous remercie pour toute votre attention et l'aide que vous pourriez m'apporter!
Bonsoir,
La couleur grise est appliquée par MFC ... la première question serait donc "Pourquoi écrire une macro pour appliquer une couleur par Mise en Forme Conditionnelle?" (avec, en outre, autant de macros que de boutons dans la plage Y17 à AM22).
C'est cette MFC qui fait que la couleur de remplissage reste la couleur transparente. Il y a bien une propriété DisplayFormat qui permettrait d'obtenir la couleur affichée, mais on ne peut pas l'utiliser comme telle dans une fonction ... C'est un peu le serpent qui se mange la queue.
On doit pouvoir résoudre le problème à la base en modifiant le code de tes 45 boutons et en définissant réellement la couleur de remplissage. Ceci dit, il me semble que, tant qu'à faire, j'essaierais d'alléger le code en appliquant la couleur au double-clic sur une cellule de la plage, par exemple, plutôt qu'au clic sur un des boutons? ... Mais c'est toi qui vois, bien sûr!
Bonjour,
Une illustration de ce que je proposais hier soir, en pièce jointe. Le code se réduit à quelques lignes dans l'objet "Feuil1" et dans le module "A_Blanc".
Tout ceci juste pour montrer qu'en fonction de la technique choisie, le nombre de lignes de programmation varie considérablement. Si tu préfères conserver tes boutons, c'est possible, évidemment!
je viens de visionner la modification que vous avez apporter, je trouve ça super de votre part.
je vois que lorsque l'on double clic il additionne les cellules grisée dans mon cas ce serai l'inverse c'est a dire lorsque je commence la correction du loto la ligne =B2:AL14 contient le chiffre 13 puisque tout les joueurs choisisse chacun 13 chiffres le calcul a ce niveau la serai de déduire les cellules grisée du chiffre 13 pour arriver jusqu'au pour le gagnant.
Je suppose que tu veux parler de la ligne 15lorsque je commence la correction du loto la ligne =B2:AL14 contient le chiffre 13
[B15:AL15].ClearContentspar
[B15:AL15].Value = 13Si j'ai bien compris, il suffit d'apporter une seconde modification (cette fois, au code de la Sub Worksheet_BeforeDoubleClick) remplacer le signe '+' par un '-' dans la lignedéduire les cellules grisée du chiffre 13
Cells(15, c.Column) = Cells(15, c.Column) + 1je vous remercie ça fonctionne super bien!
j'ai remarqué que dans la plage ou l'on double click sur les chiffres si je double click par mégarde une deuxième fois sur n'importe quel chiffre il comptabilise encore dans la ligne 15 aurai-t’il un moyen que l'on puisse double clikc qu' une seul fois pour ne pas faire d'erreur.
Si la cellule sur laquelle on fait le double-clic a déjà été "utilisée", elle est "grisée" aussi. On peut ne pas exécuter la suite du code, si tel est le cas.xxxdanydanxxx a écrit :y aurai-t’il un moyen que l'on puisse double clikc qu' une seul fois pour ne pas faire d'erreur.
Dans la procédure événementielle liée au double-clic, juste après
If Target = "" Then Exit Subajouter la ligne suivante:
If Target.Interior.Color = RGB(100, 100, 100) Then Exit SubJe vous remercie pour votre aide que vous m'avez apporté cela me facilitera la tache pour la correction de mon loto
Un tout grand merci à vous