Bonsoir,
Target est le nom d'une variable "système" dans laquelle se trouve la ou les cellules actives lors de l'événementiel.
Donc dans cette procédure :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target correspond à la nouvelle cellule sélectionnée puisque l'événement est "lorsque la sélection change"
Ceci dit vous pouvez récupérer l'adresse de cette nouvelle cellule par Target.Address, vous pouvez connaître sa valeur par Target.Value, le nombre de colonne de la sélection Target.Column.Count etc, Target contient les information de la sélection.
Si vous voulez déplacer votre code dans un Sub à part mais que vous voulez garder l'information de Target suite à l'événementiel, alors il faut "envoyer" cette variable au moment de l'appel de la procédure :
Call La_Procédure(Target)
Vous demander à VBA de lancer la Sub "La_Procédure" en envoyant les données récupérées dans la variable Range Target.
La procédure appelée ainsi doit "récupérer" cette variable d'où le :
Sub La_Procédure(La_Variable as Range)
où vous déclarer une variable La_Variable comme un objet Range (vu que Target est un Range c'est mieux...) et qui va recevoir toutes les données de Target de la fonction événementielle, donc La_Variable.Adresse donne la même chose que Target.Adress.
Votre question était de déplacer la procédure, mais si elle doit travailler avec la cellule active détectée par la procédure événementielle SelectionChange, vous devez "envoyer" cette valeur à votre procédure.
Le fait de faire ceci par exemple est que si vous avez plusieurs feuilles dans le classeur où le même code doit s'exécuter suite à un changement de sélection de cellule alors sur chacune des feuilles vous mettez :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call La_Procédure(Target)
End Sub
et dans un module vous avez votre code écrit une seul fois avec :
Sub La_Procédure(La_Variable As Range)
Ici votre code qui travaillera avec les données reçus de la feuille active et de la cellule active qui se trouve dans La_Variable
End Sub
Comme ceci en cas de modification de code, un seul est à gérer.
Après de mon coté je n'ai peut-être pas compris le sens de votre question...
@ bientôt
LouReeD