Différence Target et Activecell

Résolu
Valoche01 Messages postés 45 Statut Membre -  
eriiic Messages postés 25847 Statut Contributeur -
Bonjour,

J'ai une question toute simple. Je ne vois pas trop la différence entre ces 2 fonctions lorsque l'on passe par un "sub (target as range)". Quel est l'avantage du target?

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

If Target.Address = Range("A1").Address Then
MsgBox ("solution target")
End If


If ActiveCell.Address = Range("A2").Address Then
MsgBox ("solution activecell")
End If

End Sub


Merci beaucoup !


3 réponses

cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
Bonjour,

Regarde ce que fait ce code, tu auras tout de suite compris:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Address = Range("A1").Address Then
        MsgBox Target.Address
    End If
    
    If ActiveCell.Address = Range("A1").Address Then
        MsgBox Target.Activate
    End If
End Sub

1
Valoche01 Messages postés 45 Statut Membre
 
Merci pour ta réponse, mais j'ai beau essayer ta macro, je ne vois pas du tout ce qu'elle fait... Peux-tu m'expliquer stp?
0
cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
Target.Address = A1

Target.Activate = Vrai

Target.Value =retourne la valeur de la cellule

C'est simple
0
Valoche01 Messages postés 45 Statut Membre
 
Activecell.Address = A1
Activecell.Activate = Vrai
Activecell.Value = retourne la valeur de la cellule

Donc où est la différence?
0
cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
Regarde l'utilisation de Target.Value:

https://forums.commentcamarche.net/forum/affich-30314198-if-sur-une-cellule-contenant-du-texte

Dans l'exemple que je t'ai donné tu n'auras un message que si tu cliques sur A1

Voilà la différence!!!!!!!!!!!!!!!!!!!!!!!!!!
0
Valoche01 Messages postés 45 Statut Membre
 
Alors excuse-moi j'avais mis ton code dans thisworkbook et non dans une feuille.
J'ai bien compris ton code. Mais je te propose le même code avec activecell et ça donne la même chose. Donc il n'y a aucune différence si je ne me trompe pas...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If ActiveCell.Address = Range("A1").Address Then
MsgBox ActiveCell.Address
End If

If ActiveCell.Address = Range("A1").Address Then
MsgBox ActiveCell.Activate
End If

End Sub
0
f894009 Messages postés 17413 Statut Membre 1 715
 
Bonjour,

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

Vous avez des variables deja defines autant les utilisees et suivant le contexte cela vous facilitera la programmation
0
Valoche01 Messages postés 45 Statut Membre
 
Ok donc j'imagine que ce n'est que pour simplifier le code et qu'il n'y a aucune autre différence... Merci
0
eriiic Messages postés 25847 Statut Contributeur 7 279
 
Bonjour,

si, il y a d'autres différences.
Activecell est une cellule unique, Target peut être une plage, une union de de cellules ou de plages, etc.

eric
0