Différence Target et Activecell

Résolu
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

  1. Contributeur
    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
    1. 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
      1. 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
    2. Contributeur
      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
      1. 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
      2. Contributeur
        Target.Address = A1

        Target.Activate = Vrai

        Target.Value =retourne la valeur de la cellule

        C'est simple
        0
      3. Activecell.Address = A1
        Activecell.Activate = Vrai
        Activecell.Value = retourne la valeur de la cellule

        Donc où est la différence?
        0
      4. 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