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 :

Lancer une macro à partir d'une validation List


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Account Manager
    Inscrit en
    Décembre 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Account Manager
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2012
    Messages : 62
    Points : 62
    Points
    62
    Par défaut Lancer une macro à partir d'une validation List
    Bonjour,

    Je fais à nouveau appel à la communauté car je suis coincé.

    J'aimerai déclenché une macro à partir d'un changement réalisé au niveau d'une validation list. J'arrive le faire pour une cellule en particulier mais vu que ma liste peut être énorme et dépend du chargement qui sera fait au préalable, j'aimarais adapter.

    L'event utilisé est le suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target As Range)
      On Error Resume Next
      If Target.Address = "$F$4" Then Application.Run "Macro" & Target.Value
      If Target.Address = "$H$4" Then Application.Run "Macro_" & Target.Value
    End Sub
    L'exemple dans le fichier ci-joint sera plus parlant

    Merci pour votre aide
    Fichiers attachés Fichiers attachés

  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
    12 974
    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 : 12 974
    Points : 29 003
    Points
    29 003
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Voici un exemple pour sortir de la procédure si la cellule (Target) ne fait pas partie de la plage A2:A10
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Intersect(Target, Range("A2:A10")) Is Nothing Then Exit Sub
    Cette ligne doit se trouver en début de procédure.

  3. #3
    Membre du Club
    Homme Profil pro
    Account Manager
    Inscrit en
    Décembre 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Account Manager
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2012
    Messages : 62
    Points : 62
    Points
    62
    Par défaut
    Merci.

    J'avais effetivement oublié d'introduire la sortie.

    Mon problème principal réside dans le fait que je n'arrive pas à surveiller les validation list des cellules d'une colonne entière de facon simple et groupée (cfr. exemple)

    De plus, je note que rien ne se passe quand on fait le changement au niveau de la validation list mais uniquement lorsqu'on rentre dedans une nouvelle fois ???

    Salutations,

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 974
    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 : 12 974
    Points : 29 003
    Points
    29 003
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    De plus, je note que rien ne se passe quand on fait le changement au niveau de la validation list mais uniquement lorsqu'on rentre dedans une nouvelle fois ???
    J'utilise régulièrement l'outil Validation de données associé à l'événement Worksheet_Change et je ne rencontre pas de problème particulier.
    Dès que je sélectionne un élément dans la liste la procédure événementielle réagit correctement.

  5. #5
    Membre du Club
    Homme Profil pro
    Account Manager
    Inscrit en
    Décembre 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Account Manager
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2012
    Messages : 62
    Points : 62
    Points
    62
    Par défaut
    Tu as absoluement raison, j'avais utilisé l'évenement "Worksheet_SelectionChange"

    Cela fonctionnne parfaitement à présent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Change(ByVal Target As Range)
    'Limitation de la zone de surveillance
    On Error GoTo fin:
    If Intersect(Target, Range("K12:K30000, R12:R30000, Y12:Y30000")) Is Nothing Then Exit Sub
        Select Case Target.Value
        Case "UPDATE", "CREATE"
            AfterUpdate (Target.AddressLocal)
        End Select
    fin:
    End Sub
    Le "On error goto fin" car j'ai remarqué un comportement bizarre si j'ai le malheur de faire une sélection large dans laquelle le range surveillé est présent ... à faut d'autre chose

    Un grand merci pour aide très précieuse

    Salutations,

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 974
    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 : 12 974
    Points : 29 003
    Points
    29 003
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Le "On error goto fin" car j'ai remarqué un comportement bizarre si j'ai le malheur de faire une sélection large dans laquelle le range surveillé est présent ... à faut d'autre chose
    Quel comportement bizarre ?
    Tu veux dire lorsque tu sélectionnes plusieurs cellules sans doute ?
    Il faut ajouter en début de procédure la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Target.Count > 1 then Exit Sub

  7. #7
    Membre du Club
    Homme Profil pro
    Account Manager
    Inscrit en
    Décembre 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Account Manager
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2012
    Messages : 62
    Points : 62
    Points
    62
    Par défaut
    J'y avais même pas pensé. .. nickel, merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OpenOffice][Base de données] comment lancer une SQL à partir d'une macro
    Par marco62118 dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 05/08/2013, 09h05
  2. [XL-2007] Possibilité de lancer un bouton à partir d'une macro
    Par EFFLYINGJOKER dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/01/2010, 19h08
  3. Lancer une macro à partir d'une valeur de cellule
    Par arkorrigan dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/06/2008, 11h03
  4. Lancer une macro à partir d'une cellule
    Par marc56 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/09/2007, 17h58
  5. Réponses: 5
    Dernier message: 04/01/2007, 17h46

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