Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

remplissage de couleur automatique

12 réponses
Avatar
Pascal Tenerife
Bonjour =C3=A0 tous,
J'ai une s=C3=A9rie de nom dans la colonne A.

Dans la colonne B, je souhaite savoir si il est possible de cliquer dessus =
et que la cellule se mettent en rouge automatiquement ? Et quand je recliqu=
e dessus elle repasse en blanche ?
soit :

A1 : poisson ----> B1 : cellule blanche, si je clique dessus elle passe en =
rouge, je reclique, elle repasse en blanche
A2 : viande ----> B2 : cellule blanche, etc
etc, etc.

Ce tableur, sera utilisable sur une tablette ou sur un t=C3=A9l=C3=A9phone =
via le drive.
Si vous avez la formule, merci par avance.

Merci =C3=A0 tous pour vos r=C3=A9ponses et bon WE
Pascal

10 réponses

1 2
Avatar
MichD
Bonjour,
Fais un clic droit sur l'onglet de la feuille où l'action se déroule,
choisis la commande "Visualiser le code et copie ce bout de code dans la
page blanche de l'éditeur de code.
'---------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(ActiveCell, Range("B:B"))
If Not Rg Is Nothing Then
With Rg
If .Interior.Color = vbRed Then
.Interior.Color = xlNone
Else
.Interior.Color = vbRed
End If
.Offset(, 1).Select
End With
End If
End Sub
'---------------------------
MichD
Avatar
Pascal Tenerife
Le samedi 6 juillet 2019 14:27:56 UTC+1, MichD a écrit :
Bonjour,
Fais un clic droit sur l'onglet de la feuille où l'action se dé roule,
choisis la commande "Visualiser le code et copie ce bout de code dans la
page blanche de l'éditeur de code.
'---------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(ActiveCell, Range("B:B"))
If Not Rg Is Nothing Then
With Rg
If .Interior.Color = vbRed Then
.Interior.Color = xlNone
Else
.Interior.Color = vbRed
End If
.Offset(, 1).Select
End With
End If
End Sub
'---------------------------
MichD

génial
merci beaucoup
Bon WE
Pascal
Avatar
Jacquouille
Bonjour Denis et Pascal
j'ai testé..... et:
-Quand j'encode en col A, c'est parfait
- quand je veux encoder en col B, il met la cel en rouge et la valeur que je
voulais encoder en colB, il la met en colC ....
- quand je reclique en B, le rouge ne devient pas blanc (xlnone demandé dans
macro) mais turquoise clair (colorindex 20 ou 34).
---------------------
Pour xlnone qui se change en turquoise, ce ne serait pas un réglage de
couleur de base de la feuille?
Voilà encore un mystère de plus.
Bon dimanche à tous.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
qfq7kp$1f0s$
Bonjour,
Fais un clic droit sur l'onglet de la feuille où l'action se déroule,
choisis la commande "Visualiser le code et copie ce bout de code dans la
page blanche de l'éditeur de code.
'---------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(ActiveCell, Range("B:B"))
If Not Rg Is Nothing Then
With Rg
If .Interior.Color = vbRed Then
.Interior.Color = xlNone
Else
.Interior.Color = vbRed
End If
.Offset(, 1).Select
End With
End If
End Sub
'---------------------------
MichD
Avatar
Jacquouille
Et aussi:
Lorsque je clique en col B, je valide avec Enter. la cel sélectionnée n'est
pas celle qui suit en colB, mais celle d'à côté en colC.....
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Jacquouille" a écrit dans le message de groupe de discussion :
qfshkd$1dhf$
Bonjour Denis et Pascal
j'ai testé..... et:
-Quand j'encode en col A, c'est parfait
- quand je veux encoder en col B, il met la cel en rouge et la valeur que je
voulais encoder en colB, il la met en colC ....
- quand je reclique en B, le rouge ne devient pas blanc (xlnone demandé dans
macro) mais turquoise clair (colorindex 20 ou 34).
---------------------
Pour xlnone qui se change en turquoise, ce ne serait pas un réglage de
couleur de base de la feuille?
Voilà encore un mystère de plus.
Bon dimanche à tous.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
qfq7kp$1f0s$
Bonjour,
Fais un clic droit sur l'onglet de la feuille où l'action se déroule,
choisis la commande "Visualiser le code et copie ce bout de code dans la
page blanche de l'éditeur de code.
'---------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(ActiveCell, Range("B:B"))
If Not Rg Is Nothing Then
With Rg
If .Interior.Color = vbRed Then
.Interior.Color = xlNone
Else
.Interior.Color = vbRed
End If
.Offset(, 1).Select
End With
End If
End Sub
'---------------------------
MichD
Avatar
MichD
Le 07/07/19 à 07:23, Jacquouille a écrit :
Et aussi:
Lorsque je clique en col B, je valide avec Enter.  la cel sélectionnée
n'est pas celle qui suit en colB, mais celle d'à côté en colC.....
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Jacquouille"  a écrit dans le message de groupe de discussion :
qfshkd$1dhf$
Bonjour Denis et Pascal
j'ai testé..... et:
-Quand j'encode en col A, c'est parfait
- quand je veux encoder en col B, il met la cel en rouge et la valeur
que je
voulais encoder en colB, il la met en colC ....
- quand je reclique en B, le rouge ne devient pas blanc (xlnone demandé
dans
macro) mais turquoise clair (colorindex 20 ou 34).
---------------------
Pour xlnone qui se change en turquoise, ce ne serait pas un réglage de
couleur de base de la feuille?
Voilà encore un mystère de plus.
Bon dimanche à tous.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD"  a écrit dans le message de groupe de discussion :
qfq7kp$1f0s$
Bonjour,
Fais un clic droit sur l'onglet de la feuille où l'action se déroule,
choisis la commande "Visualiser le code et copie ce bout de code dans la
page blanche de l'éditeur de code.
'---------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(ActiveCell, Range("B:B"))
If Not Rg Is Nothing Then
    With Rg
        If .Interior.Color = vbRed Then
            .Interior.Color = xlNone
        Else
            .Interior.Color = vbRed
        End If
        .Offset(, 1).Select
    End With
End If
End Sub
'---------------------------

Bonjour,
Cela répond au besoin du demandeur.
La procédure fait ceci :
Chaque fois que tu cliques sur une cellule de la colonne B, la couleur
de fond de la cellule alterne entre le rouge et l'absence de couleur et
la cellule active devient la cellule C sur la même ligne de la cellule
sélectionnée. La ligne de code responsable de cela est : .Offset(, 1).Select
Si tu enlèves cette ligne de code et que tu sélectionnes une cellule de
la colonne B, cette cellule va changer de couleur. SAUF SI TU CLIQUES
UNE DEUXIÈME FOIS dans la même cellule, la couleur de cette dernière ne
changera pas, car le fait de cliquer une deuxième fois sur la même
cellule, cela ne déclenche pas la procédure événementielle
Worksheet_SelectionChange...
Il faut alors sélectionner une autre cellule et revenir cliquer dans la
cellule de la colonne B. À toi de choisir ce qui te convient.
MichD
Avatar
Jacquouille
Salut Denis
En fait, je n'ai aucun besoin, si ce n'est d'essayer de comprendre ta prose
en grand breton.
J'ai pigé pour le "" .Offset(, 1).Select ""
Mais, pourquoi le "" .Interior.Color = xlNone "" n'est-il pas
"interior.colorIndex"? et aussi et surtout, pourquoi le xlnone colorie-t-il
en turquoise?
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
qfsm3u$1sh$
Le 07/07/19 à 07:23, Jacquouille a écrit :
Et aussi:
Lorsque je clique en col B, je valide avec Enter. la cel sélectionnée
n'est pas celle qui suit en colB, mais celle d'à côté en colC.....
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Jacquouille" a écrit dans le message de groupe de discussion :
qfshkd$1dhf$
Bonjour Denis et Pascal
j'ai testé..... et:
-Quand j'encode en col A, c'est parfait
- quand je veux encoder en col B, il met la cel en rouge et la valeur que
je
voulais encoder en colB, il la met en colC ....
- quand je reclique en B, le rouge ne devient pas blanc (xlnone demandé
dans
macro) mais turquoise clair (colorindex 20 ou 34).
---------------------
Pour xlnone qui se change en turquoise, ce ne serait pas un réglage de
couleur de base de la feuille?
Voilà encore un mystère de plus.
Bon dimanche à tous.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
qfq7kp$1f0s$
Bonjour,
Fais un clic droit sur l'onglet de la feuille où l'action se déroule,
choisis la commande "Visualiser le code et copie ce bout de code dans la
page blanche de l'éditeur de code.
'---------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(ActiveCell, Range("B:B"))
If Not Rg Is Nothing Then
With Rg
If .Interior.Color = vbRed Then
.Interior.Color = xlNone
Else
.Interior.Color = vbRed
End If
.Offset(, 1).Select
End With
End If
End Sub
'---------------------------

Bonjour,
Cela répond au besoin du demandeur.
La procédure fait ceci :
Chaque fois que tu cliques sur une cellule de la colonne B, la couleur
de fond de la cellule alterne entre le rouge et l'absence de couleur et
la cellule active devient la cellule C sur la même ligne de la cellule
sélectionnée. La ligne de code responsable de cela est : .Offset(, 1).Select
Si tu enlèves cette ligne de code et que tu sélectionnes une cellule de
la colonne B, cette cellule va changer de couleur. SAUF SI TU CLIQUES
UNE DEUXIÈME FOIS dans la même cellule, la couleur de cette dernière ne
changera pas, car le fait de cliquer une deuxième fois sur la même
cellule, cela ne déclenche pas la procédure événementielle
Worksheet_SelectionChange...
Il faut alors sélectionner une autre cellule et revenir cliquer dans la
cellule de la colonne B. À toi de choisir ce qui te convient.
MichD
Avatar
MichD
Mais, pourquoi le ""  .Interior.Color = xlNone  "" n'est-il pas
"interior.colorIndex"? et aussi et surtout, pourquoi le xlnone
colorie-t-il en turquoise?

XlNone = "Aucun remplissage"
Il y a 2 propriétés différentes pour colorer le fond d'une cellule.
ColorIndex : cela fait référence aux couleurs que l'usager a définies
dans la palette de couleurs du fichier (ou celui par défaut)
Color : c'est la valeur en hexadécimal d'une couleur (Si tu définis une
couleur personnalisée dans la fenêtre des palettes de couleurs, tu peux
voir la valeur hexadécimale de la couleur retenue) ou on peut utiliser
l'une des 8 constantes de l'application.
VbWhite, VbBlack, VbBlue, Vbred, Vbgreen, Vbyellow, Vbmagenta, VbCyan
MichD
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD"  a écrit dans le message de groupe de discussion :
qfsm3u$1sh$
Le 07/07/19 à 07:23, Jacquouille a écrit :
Et aussi:
Lorsque je clique en col B, je valide avec Enter.  la cel sélectionnée
n'est pas celle qui suit en colB, mais celle d'à côté en colC.....
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Jacquouille"  a écrit dans le message de groupe de discussion :
qfshkd$1dhf$
Bonjour Denis et Pascal
j'ai testé..... et:
-Quand j'encode en col A, c'est parfait
- quand je veux encoder en col B, il met la cel en rouge et la valeur
que je
voulais encoder en colB, il la met en colC ....
- quand je reclique en B, le rouge ne devient pas blanc (xlnone
demandé dans
macro) mais turquoise clair (colorindex 20 ou 34).
---------------------
Pour xlnone qui se change en turquoise, ce ne serait pas un réglage de
couleur de base de la feuille?
Voilà encore un mystère de plus.
Bon dimanche à tous.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD"  a écrit dans le message de groupe de discussion :
qfq7kp$1f0s$
Bonjour,
Fais un clic droit sur l'onglet de la feuille où l'action se déroule,
choisis la commande "Visualiser le code et copie ce bout de code dans la
page blanche de l'éditeur de code.
'---------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(ActiveCell, Range("B:B"))
If Not Rg Is Nothing Then
     With Rg
         If .Interior.Color = vbRed Then
             .Interior.Color = xlNone
         Else
             .Interior.Color = vbRed
         End If
         .Offset(, 1).Select
     End With
End If
End Sub
'---------------------------

Bonjour,
Cela répond au besoin du demandeur.
La procédure fait ceci :
Chaque fois que tu cliques sur une cellule de la colonne B, la couleur
de fond de la cellule alterne entre le rouge et l'absence de couleur et
la cellule active devient la cellule C sur la même ligne de la cellule
sélectionnée. La ligne de code responsable de cela est : .Offset(,
1).Select
Si tu enlèves cette ligne de code et que tu sélectionnes une cellule de
la colonne B, cette cellule va changer de couleur. SAUF SI TU CLIQUES
UNE DEUXIÈME FOIS dans la même cellule, la couleur de cette dernière ne
changera pas, car le fait de cliquer une deuxième fois sur la même
cellule, cela ne déclenche pas la procédure événementielle
Worksheet_SelectionChange...
Il faut alors sélectionner une autre cellule et revenir cliquer dans la
cellule de la colonne B. À toi de choisir ce qui te convient.
MichD
Avatar
Jacquouille
Re
J'ai donc refait le test.
1er clic en colB et cela se met en rouge ---> OK
2ème clic sur cel rouge ------> cela se met en turquoise.
Dans ta macro, j'ai ajouté index à ...
If .Interior.Color = vbRed Then
.Interior.Color = xlNone ----> en .Interior.ColorIndex=xlnone
et cela se remet en blanc quand je valide.

Donc, je repose ma question: pourquoi, sur mon PC, .Interior.Color = xlNone
donne-t-il du turquoise?
Je ne pense pas avoir personnalisé aucune couleur que ce soit.
Déjà merci
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
qftcim$15j5$
Mais, pourquoi le "" .Interior.Color = xlNone "" n'est-il pas
"interior.colorIndex"? et aussi et surtout, pourquoi le xlnone
colorie-t-il en turquoise?

XlNone = "Aucun remplissage"
Il y a 2 propriétés différentes pour colorer le fond d'une cellule.
ColorIndex : cela fait référence aux couleurs que l'usager a définies
dans la palette de couleurs du fichier (ou celui par défaut)
Color : c'est la valeur en hexadécimal d'une couleur (Si tu définis une
couleur personnalisée dans la fenêtre des palettes de couleurs, tu peux
voir la valeur hexadécimale de la couleur retenue) ou on peut utiliser
l'une des 8 constantes de l'application.
VbWhite, VbBlack, VbBlue, Vbred, Vbgreen, Vbyellow, Vbmagenta, VbCyan
MichD
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
qfsm3u$1sh$
Le 07/07/19 à 07:23, Jacquouille a écrit :
Et aussi:
Lorsque je clique en col B, je valide avec Enter. la cel sélectionnée
n'est pas celle qui suit en colB, mais celle d'à côté en colC.....
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Jacquouille" a écrit dans le message de groupe de discussion :
qfshkd$1dhf$
Bonjour Denis et Pascal
j'ai testé..... et:
-Quand j'encode en col A, c'est parfait
- quand je veux encoder en col B, il met la cel en rouge et la valeur que
je
voulais encoder en colB, il la met en colC ....
- quand je reclique en B, le rouge ne devient pas blanc (xlnone demandé
dans
macro) mais turquoise clair (colorindex 20 ou 34).
---------------------
Pour xlnone qui se change en turquoise, ce ne serait pas un réglage de
couleur de base de la feuille?
Voilà encore un mystère de plus.
Bon dimanche à tous.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
qfq7kp$1f0s$
Bonjour,
Fais un clic droit sur l'onglet de la feuille où l'action se déroule,
choisis la commande "Visualiser le code et copie ce bout de code dans la
page blanche de l'éditeur de code.
'---------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(ActiveCell, Range("B:B"))
If Not Rg Is Nothing Then
With Rg
If .Interior.Color = vbRed Then
.Interior.Color = xlNone
Else
.Interior.Color = vbRed
End If
.Offset(, 1).Select
End With
End If
End Sub
'---------------------------

Bonjour,
Cela répond au besoin du demandeur.
La procédure fait ceci :
Chaque fois que tu cliques sur une cellule de la colonne B, la couleur
de fond de la cellule alterne entre le rouge et l'absence de couleur et
la cellule active devient la cellule C sur la même ligne de la cellule
sélectionnée. La ligne de code responsable de cela est : .Offset(,
1).Select
Si tu enlèves cette ligne de code et que tu sélectionnes une cellule de
la colonne B, cette cellule va changer de couleur. SAUF SI TU CLIQUES
UNE DEUXIÈME FOIS dans la même cellule, la couleur de cette dernière ne
changera pas, car le fait de cliquer une deuxième fois sur la même
cellule, cela ne déclenche pas la procédure événementielle
Worksheet_SelectionChange...
Il faut alors sélectionner une autre cellule et revenir cliquer dans la
cellule de la colonne B. À toi de choisir ce qui te convient.
MichD
Avatar
MichD
D'abord, je ne vais pas tergiverser longtemps sur les couleurs dans
Excel, ce n'est pas ma tasse de thé!
Il y a une énorme différence entre Excel 2003 et les versions suivantes.
Excel 2003 = Nombre de couleurs est limité à 56 couleurs que l'on
utilise la propriété "Color" ou "ColorIndex". Ces couleurs sont définis
dans la palette des couleurs du classeur.
Dans les versions suivantes, on peut dire que le nombre des couleurs
possibles est illimité au-delà de 16 millions.
Alors la propriété "ColorIndex" retourne une des couleurs de la palette
du classeur, tandis que la propriété "color" peut prendre plus de 16
millions de couleurs différentes. Pour attribuer la valeur "Color", on
doit alors utiliser la valeur hexadécimale ou l'une des constantes déjà
énumérées.
Pour Excel 2003, à une certaine époque, il y a eu plusieurs discussions
sur le sujet mené particulièrement par "Modeste".
.Interior.Color = xlnone
.interior.colorIndex = xlnone
Les 2 lignes donnent le même résultat.
La valeur hexadécimale de "Xlnone" est &HFFFFEFD2
Par conséquent, tu peux remplacer Xlnone par &HFFFFEFD2
XlNone est une constante d'Excel.
Si tu veux avoir plus d'informations sur la gestion des couleurs dans
Excel, il y sûrement des bons livres sur le sujet...quoique rare étant
donné que c'est une version âgée de 16 ans.
MichD
Le 07/07/19 à 17:22, Jacquouille a écrit :
Re
J'ai donc refait le test.
1er clic en colB et cela se met en rouge ---> OK
2ème clic sur cel rouge ------> cela se met en turquoise.
Dans ta macro, j'ai ajouté index à ...
  If .Interior.Color = vbRed Then
             .Interior.Color = xlNone ----> en
.Interior.ColorIndex=xlnone et cela se remet en blanc quand je valide.

Donc, je repose ma question: pourquoi, sur mon PC,  .Interior.Color =
xlNone donne-t-il du turquoise?
Je ne pense pas avoir personnalisé aucune couleur que ce soit.
Déjà merci
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD"  a écrit dans le message de groupe de discussion :
qftcim$15j5$
Mais, pourquoi le ""  .Interior.Color = xlNone  "" n'est-il pas
"interior.colorIndex"? et aussi et surtout, pourquoi le xlnone
colorie-t-il en turquoise?

XlNone = "Aucun remplissage"
Il y a 2 propriétés différentes pour colorer le fond d'une cellule.
ColorIndex : cela fait référence aux couleurs que l'usager a définies
dans la palette de couleurs du fichier (ou celui par défaut)
Color : c'est la valeur en hexadécimal d'une couleur (Si tu définis une
couleur personnalisée dans la fenêtre des palettes de couleurs, tu peux
voir la valeur hexadécimale de la couleur retenue) ou on peut utiliser
l'une des 8 constantes de l'application.
VbWhite, VbBlack, VbBlue, Vbred, Vbgreen, Vbyellow, Vbmagenta, VbCyan
MichD
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD"  a écrit dans le message de groupe de discussion :
qfsm3u$1sh$
Le 07/07/19 à 07:23, Jacquouille a écrit :
Et aussi:
Lorsque je clique en col B, je valide avec Enter.  la cel
sélectionnée n'est pas celle qui suit en colB, mais celle d'à côté en
colC.....
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Jacquouille"  a écrit dans le message de groupe de discussion :
qfshkd$1dhf$
Bonjour Denis et Pascal
j'ai testé..... et:
-Quand j'encode en col A, c'est parfait
- quand je veux encoder en col B, il met la cel en rouge et la valeur
que je
voulais encoder en colB, il la met en colC ....
- quand je reclique en B, le rouge ne devient pas blanc (xlnone
demandé dans
macro) mais turquoise clair (colorindex 20 ou 34).
---------------------
Pour xlnone qui se change en turquoise, ce ne serait pas un réglage de
couleur de base de la feuille?
Voilà encore un mystère de plus.
Bon dimanche à tous.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD"  a écrit dans le message de groupe de discussion :
qfq7kp$1f0s$
Bonjour,
Fais un clic droit sur l'onglet de la feuille où l'action se déroule,
choisis la commande "Visualiser le code et copie ce bout de code dans la
page blanche de l'éditeur de code.
'---------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(ActiveCell, Range("B:B"))
If Not Rg Is Nothing Then
     With Rg
         If .Interior.Color = vbRed Then
             .Interior.Color = xlNone
         Else
             .Interior.Color = vbRed
         End If
         .Offset(, 1).Select
     End With
End If
End Sub
'---------------------------

Bonjour,
Cela répond au besoin du demandeur.
La procédure fait ceci :
Chaque fois que tu cliques sur une cellule de la colonne B, la couleur
de fond de la cellule alterne entre le rouge et l'absence de couleur et
la cellule active devient la cellule C sur la même ligne de la cellule
sélectionnée. La ligne de code responsable de cela est : .Offset(,
1).Select
Si tu enlèves cette ligne de code et que tu sélectionnes une cellule de
la colonne B, cette cellule va changer de couleur. SAUF SI TU CLIQUES
UNE DEUXIÈME FOIS dans la même cellule, la couleur de cette dernière ne
changera pas, car le fait de cliquer une deuxième fois sur la même
cellule, cela ne déclenche pas la procédure événementielle
Worksheet_SelectionChange...
Il faut alors sélectionner une autre cellule et revenir cliquer dans la
cellule de la colonne B. À toi de choisir ce qui te convient.
MichD
Avatar
Jacquouille
Bonjour Denis
Excuse-moi de te faire boire du thé.
Je suis tout à fait conscient des différences entre les versions, même si, à
16 ans, on est toujours ado et pas encore vieux. -))
Mais, tout cela ne me dit toujours pas pourquoi "".Interior.Color = xlnone
"" me donne du turquoise, alors que "".interior.colorIndex = xlnone "" me
donne blanc (aucune couleur).
Mais, je n'en ferai pas une affaire d'Etat. Pour le peu que j'en aie encore
besoin, la palette de 56 couleurs est nettement suffisante, voire encore
trop grande.
Bonne fin de journée et merci.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
qfu4hv$c0n$
D'abord, je ne vais pas tergiverser longtemps sur les couleurs dans
Excel, ce n'est pas ma tasse de thé!
Il y a une énorme différence entre Excel 2003 et les versions suivantes.
Excel 2003 = Nombre de couleurs est limité à 56 couleurs que l'on
utilise la propriété "Color" ou "ColorIndex". Ces couleurs sont définis
dans la palette des couleurs du classeur.
Dans les versions suivantes, on peut dire que le nombre des couleurs
possibles est illimité au-delà de 16 millions.
Alors la propriété "ColorIndex" retourne une des couleurs de la palette
du classeur, tandis que la propriété "color" peut prendre plus de 16
millions de couleurs différentes. Pour attribuer la valeur "Color", on
doit alors utiliser la valeur hexadécimale ou l'une des constantes déjà
énumérées.
Pour Excel 2003, à une certaine époque, il y a eu plusieurs discussions
sur le sujet mené particulièrement par "Modeste".
.Interior.Color = xlnone
.interior.colorIndex = xlnone
Les 2 lignes donnent le même résultat.
La valeur hexadécimale de "Xlnone" est &HFFFFEFD2
Par conséquent, tu peux remplacer Xlnone par &HFFFFEFD2
XlNone est une constante d'Excel.
Si tu veux avoir plus d'informations sur la gestion des couleurs dans
Excel, il y sûrement des bons livres sur le sujet...quoique rare étant
donné que c'est une version âgée de 16 ans.
MichD
Le 07/07/19 à 17:22, Jacquouille a écrit :
Re
J'ai donc refait le test.
1er clic en colB et cela se met en rouge ---> OK
2ème clic sur cel rouge ------> cela se met en turquoise.
Dans ta macro, j'ai ajouté index à ...
If .Interior.Color = vbRed Then
.Interior.Color = xlNone ----> en
.Interior.ColorIndex=xlnone et cela se remet en blanc quand je valide.

Donc, je repose ma question: pourquoi, sur mon PC, .Interior.Color =
xlNone donne-t-il du turquoise?
Je ne pense pas avoir personnalisé aucune couleur que ce soit.
Déjà merci
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
qftcim$15j5$
Mais, pourquoi le "" .Interior.Color = xlNone "" n'est-il pas
"interior.colorIndex"? et aussi et surtout, pourquoi le xlnone
colorie-t-il en turquoise?

XlNone = "Aucun remplissage"
Il y a 2 propriétés différentes pour colorer le fond d'une cellule.
ColorIndex : cela fait référence aux couleurs que l'usager a définies
dans la palette de couleurs du fichier (ou celui par défaut)
Color : c'est la valeur en hexadécimal d'une couleur (Si tu définis une
couleur personnalisée dans la fenêtre des palettes de couleurs, tu peux
voir la valeur hexadécimale de la couleur retenue) ou on peut utiliser
l'une des 8 constantes de l'application.
VbWhite, VbBlack, VbBlue, Vbred, Vbgreen, Vbyellow, Vbmagenta, VbCyan
MichD
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
qfsm3u$1sh$
Le 07/07/19 à 07:23, Jacquouille a écrit :
Et aussi:
Lorsque je clique en col B, je valide avec Enter. la cel sélectionnée
n'est pas celle qui suit en colB, mais celle d'à côté en colC.....
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Jacquouille" a écrit dans le message de groupe de discussion :
qfshkd$1dhf$
Bonjour Denis et Pascal
j'ai testé..... et:
-Quand j'encode en col A, c'est parfait
- quand je veux encoder en col B, il met la cel en rouge et la valeur
que je
voulais encoder en colB, il la met en colC ....
- quand je reclique en B, le rouge ne devient pas blanc (xlnone demandé
dans
macro) mais turquoise clair (colorindex 20 ou 34).
---------------------
Pour xlnone qui se change en turquoise, ce ne serait pas un réglage de
couleur de base de la feuille?
Voilà encore un mystère de plus.
Bon dimanche à tous.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
qfq7kp$1f0s$
Bonjour,
Fais un clic droit sur l'onglet de la feuille où l'action se déroule,
choisis la commande "Visualiser le code et copie ce bout de code dans la
page blanche de l'éditeur de code.
'---------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(ActiveCell, Range("B:B"))
If Not Rg Is Nothing Then
With Rg
If .Interior.Color = vbRed Then
.Interior.Color = xlNone
Else
.Interior.Color = vbRed
End If
.Offset(, 1).Select
End With
End If
End Sub
'---------------------------

Bonjour,
Cela répond au besoin du demandeur.
La procédure fait ceci :
Chaque fois que tu cliques sur une cellule de la colonne B, la couleur
de fond de la cellule alterne entre le rouge et l'absence de couleur et
la cellule active devient la cellule C sur la même ligne de la cellule
sélectionnée. La ligne de code responsable de cela est : .Offset(,
1).Select
Si tu enlèves cette ligne de code et que tu sélectionnes une cellule de
la colonne B, cette cellule va changer de couleur. SAUF SI TU CLIQUES
UNE DEUXIÈME FOIS dans la même cellule, la couleur de cette dernière ne
changera pas, car le fait de cliquer une deuxième fois sur la même
cellule, cela ne déclenche pas la procédure événementielle
Worksheet_SelectionChange...
Il faut alors sélectionner une autre cellule et revenir cliquer dans la
cellule de la colonne B. À toi de choisir ce qui te convient.
MichD
1 2