IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Utilisation de la range "Target" dans une autre procedure.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier

    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 8
    Billets dans le blog
    1
    Par défaut Utilisation de la range "Target" dans une autre procedure.
    Bonjour à tous,
    Je cherche à utiliser la range "Target" renvoyer dans les sub "Private Sub Worksheet_Change(ByVal Target As Range)" et "Private Sub Worksheet_SelectionChange(ByVal Target As Range)" d'une feuille vers une autre procédure pour éviter d'avoir 2 procédures identiques dans ces evenements.

    J'ai essayé de déclarer un objet "Selection", une Range, avec ou sans "Option explicit". J'ai tourné le problème dans tous les sens, J'ai toujours un message d'erreur.
    J'ai mis cette 3 eme procédure dans le code de la feuille, dans un module, même problème.
    Pour ma recherche, cette 3eme procédure ne contient qu'une msgbox (selection.address) pour vérifier le bon fonctionnement.

    Essai avec le transfert direct de "Target" vers la procédure Essai:
    Private Sub Worksheet_Change(ByVal Target As Range)
    essai (Target)
    End Sub
    Erreur 424


    Essai avec une variable déclarée et utilisation ou non de "Set" :
    Dim selection As Range
    Set selection = Target
    essai (selection)
    erreur 91
    Dans la procédure "Essai", j'ai aussi essayé avec et sans la declaration (byval selection as range) mais toujours une erreur!
    En espérant avoir été assez clair même si je ne suis pas rentré dans le détail de toutes les versions essayées. Si quelqu'un peux m'éclairer sur ce problème que je tourne dans tous les sens.
    Merci d'avance.
    Cordialement

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 175
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je cherche à utiliser la range "Target" renvoyer dans les sub "Private Sub Worksheet_Change(ByVal Target As Range)" et "Private Sub Worksheet_SelectionChange(ByVal Target As Range)" d'une feuille vers une autre procédure pour éviter d'avoir 2 procédures identiques dans ces evenements.
    Vous pouvez soit prévoir un argument de type Range dans la procédure que vous avez nommé "Essai" ou utiliser l'objet Selection

    Exemple 1 en utilisant un argument de type Range
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Essai Target
    End Sub
    La procédure Essai dans un module standard ou dans le module de la feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Essai(oRange As Range)
      MsgBox "Target = " & oRange.Address
    End Sub
    Exemple 2 en utilisant l'objet Selection dans la procédure Essai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Essai
    End Sub
    La procédure Essai dans un module standard ou dans le module de la feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Essai()
      MsgBox "Target = " & Selection.Address
    End Sub
    Lorsque vous invoquez une procédure avec argument, c'est Call Essai(Target) ou Essai Target
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. Comment utiliser des Sub et des Property Get dans une autre feuille ?
    Par AntoineCompagnie dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/04/2017, 07h25
  2. Réponses: 3
    Dernier message: 24/04/2016, 14h16
  3. Réponses: 3
    Dernier message: 10/09/2013, 12h27
  4. Réponses: 4
    Dernier message: 16/10/2010, 21h50
  5. Réponses: 1
    Dernier message: 06/05/2009, 15h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo