Activer une cellule par clique
Bonjour
Je souhaiterai activer une cellule en double cliquant dessus :
Pour être précis, un double clique sur la cellule permettrait de la coloré en vert avec la valeur "1" à l'intérieur.
Ou un double clique sur une autre cellule permettrait de la coloré en rouge sans valeur.
Je vous remercie par avance de votre aide.
Cdlt
Bonjour
Merci de changer le titre de ta demande
Cela ne concerne en aucun cas l'activation d'une cellule, mais le changement de sa couleur
Après on verra
BrunoM45 a écrit :Bonjour
Merci de changer le titre de ta demande
Cela ne concerne en aucun cas l'activation d'une cellule, mais le changement de sa couleur
Après on verra
Bonjour Bruno,
Je me suis sans doute mal expliqué.
Si la cellule est vierge et incolore et que je double clique dessus elle ne deviendra pas verte automatiquement avec une valeur de "1" automatiquement.
Il me semble nécessaire qu'une macro déclenche cette action sans avoir à sélectionner le processus de remplissage de la cellule et d'écrire le chiffre "1" à l'intérieur manuellement.
Merci d'avance
Cdlt
frangy a écrit :Bonjour,
Une solution avec l'évènement BeforeDoubleClick de la feuille
A+
Bonjour
Merci pour cette solution, si je Double Click à nouveau peut elle redevenir à son état initial ?
A+
Je préfèrerais que tu poses des questions sur la procédure afin que tu puisses ensuite la modifier à loisir.
Voici une variante
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$A$1" Then
If Target.Interior.ColorIndex = 43 Then
Target.Interior.ColorIndex = xlColorIndexNone
Target.Value = ""
Else
Target.Interior.ColorIndex = 43
Target.Value = 1
End If
Else
If Range("A1").Interior.ColorIndex = 43 Then
Range("A1").Interior.ColorIndex = 3
Range("A1").Value = ""
End If
End If
End SubA+
frangy a écrit :Je préfèrerais que tu poses des questions sur la procédure afin que tu puisses ensuite la modifier à loisir.
Voici une variante
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address = "$A$1" Then If Target.Interior.ColorIndex = 43 Then Target.Interior.ColorIndex = xlColorIndexNone Target.Value = "" Else Target.Interior.ColorIndex = 43 Target.Value = 1 End If Else If Range("A1").Interior.ColorIndex = 43 Then Range("A1").Interior.ColorIndex = 3 Range("A1").Value = "" End If End If End SubA+
Bonsoir,
Merci encore une fois, tu as raison la procédure me serait utile et tu as deviné que je suis novice en la matière.
Concernant la procédure comment fait on lorsque le programme ci dessus est copié dans une feuille visual basic sur excel pour l' appliquer à une cellule ?
A+
Concernant la procédure comment fait on lorsque le programme ci dessus est copié dans une feuille visual basic sur excel pour l' appliquer à une cellule ?
Le code doit être copié dans le module de la feuille concernée, à savoir celui de la feuille "Feuil1" dans l’exemple proposé.
L’évènement qui lance la procédure est un double clic sur une cellule quelconque de la feuille.
La cellule sur laquelle est effectué ce double clic est nommée Target dans la procédure.
Pour surveiller les actions sur la cellule A1 (par exemple), il suffit de vérifier que l’adresse de Target est identique à celle de A1.
C’est l’objet de l’instruction If Target.Address = "$A$1" Then …
Si tu veux surveiller B6, il suffit de coder If Target.Address = "$B$6" Then …
Voici le code commenté
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Si la cellule sur laquelle est effectué le double clis est la cellule A1, alors ...
If Target.Address = "$A$1" Then
'Si la cellule est coloriée en vert, alors ...
If Target.Interior.ColorIndex = 43 Then
'on supprime la couleur de la cellule
Target.Interior.ColorIndex = xlColorIndexNone
'on efface la valeur
Target.Value = ""
'sinon
Else
'la cellule est coloriée en vert
Target.Interior.ColorIndex = 43
'on affecte la valeur 1 à la cellule
Target.Value = 1
End If
'sinon (la cellule n'est pas A1),
Else
'Si la cellule est coloriée en vert, alors ...
If Range("A1").Interior.ColorIndex = 43 Then
'la cellule est coloriée en rouge
Range("A1").Interior.ColorIndex = 3
'on affecte la valeur 1 à la cellule
Range("A1").Value = ""
End If
End If
End Sub
A+
frangy a écrit :Concernant la procédure comment fait on lorsque le programme ci dessus est copié dans une feuille visual basic sur excel pour l' appliquer à une cellule ?
Le code doit être copié dans le module de la feuille concernée, à savoir celui de la feuille "Feuil1" dans l’exemple proposé.
L’évènement qui lance la procédure est un double clic sur une cellule quelconque de la feuille.
La cellule sur laquelle est effectué ce double clic est nommée Target dans la procédure.
Pour surveiller les actions sur la cellule A1 (par exemple), il suffit de vérifier que l’adresse de Target est identique à celle de A1.
C’est l’objet de l’instruction If Target.Address = "$A$1" Then …
Si tu veux surveiller B6, il suffit de coder If Target.Address = "$B$6" Then …
Voici le code commenté
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'Si la cellule sur laquelle est effectué le double clis est la cellule A1, alors ... If Target.Address = "$A$1" Then 'Si la cellule est coloriée en vert, alors ... If Target.Interior.ColorIndex = 43 Then 'on supprime la couleur de la cellule Target.Interior.ColorIndex = xlColorIndexNone 'on efface la valeur Target.Value = "" 'sinon Else 'la cellule est coloriée en vert Target.Interior.ColorIndex = 43 'on affecte la valeur 1 à la cellule Target.Value = 1 End If 'sinon (la cellule n'est pas A1), Else 'Si la cellule est coloriée en vert, alors ... If Range("A1").Interior.ColorIndex = 43 Then 'la cellule est coloriée en rouge Range("A1").Interior.ColorIndex = 3 'on affecte la valeur 1 à la cellule Range("A1").Value = "" End If End If End SubA+
Bonjour,
Merci beaucoup pour cette explication. Peux tu me dire quel code je devrais inclure pour dire que la cellule verte est égal à "1" mais sans que la valeur n'apparaisse dans la cellule et "0" pour la rouge.
Sachant que lorsque je rentre dans ma feuille de calcul et que j'additionne les cellules elles réagissent numériquement c a d 2 vertes = 2 etc....
Et si je veux associer un smiley qui à le sourire avec la case verte et un qui grimace avec la case rouge.
Merci de ton aide.
A+
Bonjour,
Peux tu me dire quel code je devrais inclure pour dire que la cellule verte est égal à "1" mais sans que la valeur n'apparaisse dans la cellule et "0" pour la rouge, sachant que lorsque je rentre dans ma feuille de calcul et que j'additionne les cellules elles réagissent numériquement c a d 2 vertes = 2 etc....
Désolé, je ne comprends pas
Et si je veux associer un smiley qui à le sourire avec la case verte et un qui grimace avec la case rouge.
https://forum.excel-pratique.com/excel/associer-un-smiley-via-une-lettre-a-un-resultat-t31180.html
A+
frangy a écrit :Bonjour,
Peux tu me dire quel code je devrais inclure pour dire que la cellule verte est égal à "1" mais sans que la valeur n'apparaisse dans la cellule et "0" pour la rouge, sachant que lorsque je rentre dans ma feuille de calcul et que j'additionne les cellules elles réagissent numériquement c a d 2 vertes = 2 etc....
Désolé, je ne comprends pas
Et si je veux associer un smiley qui à le sourire avec la case verte et un qui grimace avec la case rouge.
https://forum.excel-pratique.com/excel/associer-un-smiley-via-une-lettre-a-un-resultat-t31180.html
A+
Rebonjour
Merci pour le lien avec le smiley. Ma question concernant la valeur de la cellule est si tu souhaite masquer le chiffre "1" à l'intérieur de la cellule c a d lors de la visualisation de ton tableau qui serait composé de plusieurs cellules vertes et que tu additionnes ces cellules par une formule classique alors même que le chiffre "1" n'est pas visualisé dans la cellule l'addition te permets d'obtenir un résultat chiffré.
exemple : L'addition de 3 cellules verte par la formule classique "somme..." me donnera le chiffre 3. Cela consiste à donner une valeur à la cellule de couleur sans pour autant visualiser le chiffre qui se trouve à l'intérieur.
A+
Bonjour,
Si tu veux simplement masquer le chiffre 1 dans la cellule lorsque la cellule est verte, il suffit de lui appliquer une police verte.
Par contre, ce chiffre apparait quand même dans la barre de formule lorsque la cellule est sélectionnée.
A+
frangy a écrit :Bonjour,
Si tu veux simplement masquer le chiffre 1 dans la cellule lorsque la cellule est verte, il suffit de lui appliquer une police verte.
Par contre, ce chiffre apparait quand même dans la barre de formule lorsque la cellule est sélectionnée.
A+
Bonsoir
Merci infiniment pour tous ces conseils, j'aurai du effectivement réfléchir un peu plus concernant le fait de masquer le chiffre.
Une dernière question si je souhaite appliquer la formule à plusieurs cellules je nomme les "target" les uns après les autres ou je répète la formule autant de fois qu'il y a de cellule concernée.
A+
Une dernière question si je souhaite appliquer la formule à plusieurs cellules je nomme les "target" les uns après les autres ou je répète la formule autant de fois qu'il y a de cellule concernée.
Il n’y a qu’une seule cible (Target). C’est la cellule sur laquelle est effectué le double clic.
Par contre, tu peux choisir d’effectuer un traitement si cette cible est A1 ou A2 ou B25 ou ...
Pour cela, il suffit d’écrire If Target.address= "$A$1" or Target.address= "$A$2" or Target.address= "$B$25" etc… Then
Tu peux également choisir d’effectuer un traitement si la cible appartient à une plage de plusieurs cellules.
Exemple avec la plage A10 :C25
If Not Application.Intersect(Target,Range(“ A10 :C25”) is nothing Then …
Ce qui se traduit par "si l’intersection entre la cible et la plage A10 :C25 n’est pas vide alors"
ou plus simplement "si la cible appartient à la plage A10 :C25"
A+
frangy a écrit :Bonjour,
Peux tu me dire quel code je devrais inclure pour dire que la cellule verte est égal à "1" mais sans que la valeur n'apparaisse dans la cellule et "0" pour la rouge, sachant que lorsque je rentre dans ma feuille de calcul et que j'additionne les cellules elles réagissent numériquement c a d 2 vertes = 2 etc....
Désolé, je ne comprends pas
Et si je veux associer un smiley qui à le sourire avec la case verte et un qui grimace avec la case rouge.
https://forum.excel-pratique.com/excel/associer-un-smiley-via-une-lettre-a-un-resultat-t31180.html
A+
bonsoir,
je galère un peu avec la programmation sous visual basic, je cherche à modifier avec le double click les cellules "B17 à21 et B27,B28 et B32 à B35 puis B39. de rouge(0) état initial à vert (1) état après double click.
A+
frangy a écrit :Je préfèrerais que tu poses des questions sur la procédure afin que tu puisses ensuite la modifier à loisir.
Voici une variante
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address = "$A$1" Then If Target.Interior.ColorIndex = 43 Then Target.Interior.ColorIndex = xlColorIndexNone Target.Value = "" Else Target.Interior.ColorIndex = 43 Target.Value = 1 End If Else If Range("A1").Interior.ColorIndex = 43 Then Range("A1").Interior.ColorIndex = 3 Range("A1").Value = "" End If End If End SubA+
JMB a écrit :frangy a écrit :Bonjour,
Peux tu me dire quel code je devrais inclure pour dire que la cellule verte est égal à "1" mais sans que la valeur n'apparaisse dans la cellule et "0" pour la rouge, sachant que lorsque je rentre dans ma feuille de calcul et que j'additionne les cellules elles réagissent numériquement c a d 2 vertes = 2 etc....
Désolé, je ne comprends pas
Et si je veux associer un smiley qui à le sourire avec la case verte et un qui grimace avec la case rouge.
https://forum.excel-pratique.com/excel/associer-un-smiley-via-une-lettre-a-un-resultat-t31180.html
A+
bonsoir,
je galère un peu avec la programmation sous visual basic, je cherche à modifier avec le double click les cellules "B17 à21 et B27,B28 et B32 à B35 puis B39. de rouge(0) état initial à vert (1) état après double click.
A+
Bonsoir,
j'avance un peu à force de persévérance mais j'ai une erreur " la déclaration de la procédure ne correspond pas à la description de l'événement ou de la procédure de même nom" !!!
Peux tu me dire quel est le problème ?
A+
Bonsoir,
Je cherche à modifier avec le double click les cellules "B17 à B21 et B27,B28 et B32 à B35 puis B39. _
de rouge(0) état initial à vert (1) état après double click.
J'espère que tu sais où tu vas parce que pour ma part j'ai du mal à te suivre. Voila maintenant qu'il y a 12 cellules à prendre en compte sur des plages discontinues et qui sont rouges à l'état initial
Dans l'exemple joint, les cellules de la plage indiquée sont rouges et ont la valeur 0 à l'activation de la feuille puis deviennent vertes avec la valeur 1 sur un double clic.
A toi d'adapter.
A+
frangy a écrit :Bonsoir,
Je cherche à modifier avec le double click les cellules "B17 à B21 et B27,B28 et B32 à B35 puis B39. _
de rouge(0) état initial à vert (1) état après double click.
J'espère que tu sais où tu vas parce que pour ma part j'ai du mal à te suivre. Voila maintenant qu'il y a 12 cellules à prendre en compte sur des plages discontinues et qui sont rouges à l'état initial
. Dans l'exemple joint, les cellules de la plage indiquée sont rouges et ont la valeur 0 à l'activation de la feuille puis deviennent vertes avec la valeur 1 sur un double clic.
A toi d'adapter.
A+
frangy a écrit :Bonsoir,
Je cherche à modifier avec le double click les cellules "B17 à B21 et B27,B28 et B32 à B35 puis B39. _
de rouge(0) état initial à vert (1) état après double click.
J'espère que tu sais où tu vas parce que pour ma part j'ai du mal à te suivre. Voila maintenant qu'il y a 12 cellules à prendre en compte sur des plages discontinues et qui sont rouges à l'état initial
. Dans l'exemple joint, les cellules de la plage indiquée sont rouges et ont la valeur 0 à l'activation de la feuille puis deviennent vertes avec la valeur 1 sur un double clic.
A toi d'adapter.
A+
frangy a écrit :Bonsoir,
Je cherche à modifier avec le double click les cellules "B17 à B21 et B27,B28 et B32 à B35 puis B39. _
de rouge(0) état initial à vert (1) état après double click.
J'espère que tu sais où tu vas parce que pour ma part j'ai du mal à te suivre. Voila maintenant qu'il y a 12 cellules à prendre en compte sur des plages discontinues et qui sont rouges à l'état initial
. Dans l'exemple joint, les cellules de la plage indiquée sont rouges et ont la valeur 0 à l'activation de la feuille puis deviennent vertes avec la valeur 1 sur un double clic.
A toi d'adapter.
A+
Bonjour
je comprends que tu es du mal à me suivre sans avoir le projet sur lequel je travaille, je vais essayer de te donner quelques explications.
Je réalise une feuille de calcul sur laquelle je liste plusieurs critères d'évaluations d'une prestation et pour chaque critères ceux ci sont bon (vert(1)) ou pas bon(rouge(0)), ensuite j'additionne l'ensemble des critères et transforme cela en pourcentage de satisfaction.
La macro sous VBA me permet de remplir rapidement cette feuille.
Maintenant si je veux modifier ou adapter le programme en le modifiant sous VBA en ajoutant une cible ou autre, je dois l'importer dans VBA et l'exporter dans ma feuille de calcul, mais celui ci n'est pas pris en compte, il doit y avoir une procédure que j'ignore pour cette validation, peux tu m'éclairer ?.
Puis dans l'exemple que tu m'a dernièrement transmis avec un état initial en vert et après double click celui ci passe en rouge, peut on imaginer de repasser en rouge si on double click à nouveau sur la cellule ?.
Merci d'avance pour tes explications
A+
Bonjour,
dans l'exemple que tu m'a dernièrement transmis avec un état initial en vert et après double click celui ci passe en rouge, peut on
imaginer de repasser en rouge si on double click à nouveau sur la cellule ?
Non, dans le dernier exemple que je t’ai transmis, l’état initial est rouge et passe en vert après double clic. De plus, si tu fais à nouveau un double clic, le remplissage est supprimé.
Dans le nouvel exemple joint, l’état initial est rouge et passe en vert après double clic. De plus, si tu fais à nouveau un double clic, on repasse en rouge, etc.
Maintenant si je veux modifier ou adapter le programme en le modifiant sous VBA en ajoutant une cible ou autre, je dois l'importer dans VBA et l'exporter dans ma feuille de calcul, mais celui ci n'est pas pris en compte, il doit y avoir une procédure que j'ignore pour cette validation, peux tu m'éclairer ?.
Le code doit être placé dans le module de la feuille concernée, module Feuil1(Feuil1) par exemple si la procédure est applicable à cette feuille.
A+
frangy a écrit :Bonjour,
dans l'exemple que tu m'a dernièrement transmis avec un état initial en vert et après double click celui ci passe en rouge, peut on
imaginer de repasser en rouge si on double click à nouveau sur la cellule ?
Non, dans le dernier exemple que je t’ai transmis, l’état initial est rouge et passe en vert après double clic. De plus, si tu fais à nouveau un double clic, le remplissage est supprimé.
Dans le nouvel exemple joint, l’état initial est rouge et passe en vert après double clic. De plus, si tu fais à nouveau un double clic, on repasse en rouge, etc.
Maintenant si je veux modifier ou adapter le programme en le modifiant sous VBA en ajoutant une cible ou autre, je dois l'importer dans VBA et l'exporter dans ma feuille de calcul, mais celui ci n'est pas pris en compte, il doit y avoir une procédure que j'ignore pour cette validation, peux tu m'éclairer ?.
Le code doit être placé dans le module de la feuille concernée, module Feuil1(Feuil1) par exemple si la procédure est applicable à cette feuille.
A+
frangy a écrit :Bonjour,
dans l'exemple que tu m'a dernièrement transmis avec un état initial en vert et après double click celui ci passe en rouge, peut on
imaginer de repasser en rouge si on double click à nouveau sur la cellule ?
Non, dans le dernier exemple que je t’ai transmis, l’état initial est rouge et passe en vert après double clic. De plus, si tu fais à nouveau un double clic, le remplissage est supprimé.
Dans le nouvel exemple joint, l’état initial est rouge et passe en vert après double clic. De plus, si tu fais à nouveau un double clic, on repasse en rouge, etc.
Maintenant si je veux modifier ou adapter le programme en le modifiant sous VBA en ajoutant une cible ou autre, je dois l'importer dans VBA et l'exporter dans ma feuille de calcul, mais celui ci n'est pas pris en compte, il doit y avoir une procédure que j'ignore pour cette validation, peux tu m'éclairer ?.
Le code doit être placé dans le module de la feuille concernée, module Feuil1(Feuil1) par exemple si la procédure est applicable à cette feuille.
A+
Bonsoir
Merci infiniment pour tous ces conseils, j'ai enfin terminé et cela fonctionne comme je le souhaite. J'ai très apprécié le sérieux de tes réponses et il est rare de rencontrer un forum avec une telle qualité dans les réponses.
Merci encore
A+