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