Test d'appartenance activecell à un range en dehors d'un évènement

Coucou la team

Je souhaite tester, en dehors de tout évènement (ma macro sera lancée par un raccourci clavier), l'appartenance à un range de ma cellule active. La chose est simple mais je ne comprends pas mon erreur, ceci ne fonctionnant pas :

Sub tomato()
Set lstoA = [Archives].ListObjects("Tbl_archives")
Col_com = lstoA.ListColumns("Commentaires").Index
    If Not Intersect(ActiveCell, lstoA.ListColumns(Col_com).DataBodyRange) Is Nothing Then
        'mon code
    Else
        exit sub
    End If
end sub

De plus, je souhaite compléter la variable ActiveCell pour qu'elle sécurise le lancement de cette macro :

Sub tomato()
Set lstoA = [Archives].ListObjects("Tbl_archives")
Col_com = lstoA.ListColumns("Commentaires").Index
mytarget = ActiveWorksheet.Range(ActiveCell)
    If Not Application.Intersect(mytarget, lstoA.ListColumns(Col_com).DataBodyRange) Is Nothing Then
        'mon code
    Else
        exit sub
    End If
end sub

Avez-vous une idée s'il vous plait ?

Bonsoir tomato ,

Puisqu'aucun classeur n'a daigné être jointpour savoir ce qu'est "Archives" , essayez à tout hasard :

Set lstoA = [Archives].Parent.ListObjects("Tbl_archives")

ou Set lstoA = ActivSheet.ListObjects("Tbl_archives")

Bonsoir mafraise, et merci de te pencher sur mon sujet.

Je crois qu'il y a un malentendu. C'est sur le test d'appartenance et particulièrement sur le paramètre activecell que je bloque.

Aucun souci avec la déclaration de mon listobject, d'ailleurs [Archives] est simplement le codename de la feuille contenant le "Tbl_archives".

A titre d'illustration, si j'avais souhaité un déclenchement sur un évènement de la feuille je serais passé par :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set lstoA = me.ListObjects("Tbl_archives")
Col_com = lstoA.ListColumns("Commentaires").Index
    If Not Intersect(Target, lstoA.ListColumns(Col_com).DataBodyRange) Is Nothing Then
        'mon code
    Else
        exit sub
    End If
end sub

Ce que je souhaite c'est, de ne pas passer par un évènement, mais un raccourci clavier.

Cependant je souhaite que ma macro ne s'exécute que si ma cellule active est une des cellules de la colonne "Commentaires" de mon tableau structuré. J'ai donc imaginé tester l'appartenance de ma cellule active à ladite colonne...

Mais c'est chou blanc

Ok, je m'autoréponds si jamais quelqu'un y trouve un jour une utilité :

L'échec de ce simple test tient en la qualification de la propriété de l'objet activecell qui doit évidemment être un range. Pour cela on utilise la formulation suivante :

Application.ActiveCell

Le code valide et fonctionnel est alors :

Sub tomato()
Set lstoA = [Archives].ListObjects("Tbl_archives")
Col_com = lstoA.ListColumns("Commentaires").Index
    If Not Intersect(Application.ActiveCell, lstoA.ListColumns(Col_com).DataBodyRange) Is Nothing Then
        'mon code
    Else
        exit sub
    End If
end sub

Bonne nuit

Rechercher des sujets similaires à "test appartenance activecell range dehors evenement"