connaitre valeur couleur cellule active

glm

XLDnaute Occasionnel
Bonsoir à tous,
je cherche à connaitre la valeur de la couleur de la cellule active.
J'ai essayé cela mais ne fonctionne pas

c = ActiveCell.Interior.ColorIndex

Il met tjrs la même valeur : -4142
J'ai essayé différente chose mais tjrs rien
Merci de votre aide A+
 

Bricofire

XLDnaute Impliqué
Bonsoir glm, Pascal76, :)

glm, il est normal que tu n'ai pas trouvé d'aide sur Target, c'est en effet, si on peut dire :whistle: 'rien du tout'. C'est simplement le nom d'une variable, il ne faut donc pas chercher dans l'aide vba, mais plutôt du côté dico...
(In Xanadu)
target:
Principal Translations:
target (arrow, military) nf cible
target (end, goal) nm but
Additional Translations:
target nf mire
target (advertising) v cibler (Marketing - s'adresser)


On peut faire aussi des ref plus basiques comme cf dialogues dans Top Gun :)

Dans la procédure private évènementielle où il se trouve (comme dans d'autres) ce sont des procédures prédéfinies qui sont 'appelées' par l'évènement considéré. (tu ne peux d'ailleurs les déclencher par F5 ou F8, normal car il faut leur fournir leurs arguments).
Si tu prend l'évènementielle Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
le fait de double cliquer sur une case transmet à la procédure la valeur de la case concernée et affecte par défaut la valeur False à Cancel.
Le fait d'employer Byval fait que c'est la valeur de la cellulle cliquée qui est passée et non son adresse (ce qui serait le cas avec un Byref, mais non modifiable dans ces cas, on demande la propriété explicitement dans l'exemple).
Donc Target, et Cancel d'ailleurs, ne sont que des noms de variables, choisis ici car explicite dans la langue d'origine.
Le plus amusant est que si on les changent, ça marche aussi, à première vue ( juste par curiosité, pour jouer à comprendre, ce n'est pas académique !), c'est l'ordre et la nature des arguments qui comptent...
Private Sub Worksheet_BeforeDoubleClick(ByVal Brico As Range, Gohome As Boolean)

If Brico = Range('D5') Then Brico.Interior.ColorIndex = 3
If Brico = 10 Then Brico.Interior.ColorIndex = 6
If Brico.Address = Range('D5').Address Then Brico.Interior.ColorIndex = 4
'MsgBox Gohome '(enlever ' pour valider..)
End Sub


Donc si dans un classeur vierge et une feuille vierge, tu mets 10 dans une case autre que D5 :
- si tu Dbclic n'importe où d'autre, la case devient rouge
- si tu dbclic sur celle qui contient 10, elle devient jaune
- si tu dbclic en D5, elle devient verte

:) :) Plus Fun :
Tu mets D5 vierge (couleur), tu rentres 10 dedans, tu mets un point d'arrêt sur la ligne du premier IF, tu dbclic sur D5 et tu avances pas à pas avec F8 (une fois la procédure appelée, c'est bien sûr possible), du coup, fort logiquement, ta case D5 devient rouge (Valeur de D5 = D5 :) ), puis jaune (D5 = 10), puis verte (l'adresse clic est bien D5).


Bonne Barbanuit,

Brico
 

Discussions similaires

Statistiques des forums

Discussions
312 393
Messages
2 087 961
Membres
103 686
dernier inscrit
maykrem