Appel d'une macro si colonne x contiens valeur x [Résolu/Fermé]

Signaler
Messages postés
47
Date d'inscription
vendredi 4 avril 2014
Statut
Membre
Dernière intervention
23 décembre 2018
-
Messages postés
47
Date d'inscription
vendredi 4 avril 2014
Statut
Membre
Dernière intervention
23 décembre 2018
-
Bonjour,
J'ai dans une colonne des noms employés.
J'ai des macros pour chacun.
comment appeler les macros en fonction de leur présence dans la colonne employés??
Ex.: Employés: Lise(A1),Yvan(A2),Gilbert(A3)
Macros: Lise, Yvan, Bertrand, Gertrude, Gilbert.
Je veux exécuter les macros; Lise, Yvan, Gilbert.


6 réponses

Messages postés
2966
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
794
Salut le Forum

Pour la plage A1:A10, code à placer dans le module de la feuille

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A1:A10")) Is Nothing Then
        Select Case Target.Value
        Case "Lise"
            Call Lise
        Case "Yvan"
            Call Yvan
        End Select
    End If
End Sub

Mytå
Messages postés
47
Date d'inscription
vendredi 4 avril 2014
Statut
Membre
Dernière intervention
23 décembre 2018
1
Merci beaucoup pour ta réponse.
Je l'ai essayé et ça fonctionne mais seulement sur le 1er nom.
Avant de recevoir ta réponse j'ai trouvé une solution mais bcp plus longue, avec une macro;

Sub EMPL()

If Range("A1") = "Lise" Then
Call Lise
End If
If Range("A1") = "Yvan" Then
Call Yvan
End If
...
Ens Sub

C'est long car je dois tout inclure les possibilités.
Peut-être j'ai pas entré ton code comme il faut
Messages postés
2966
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
794
Re le Forum

Voir Message #5 pour un fichier avec les deux méthodes.

Mytå
Messages postés
2966
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
794
Re le Forum

Autre possibilité

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A1:A10")) Is Nothing Then
    On Error Resume Next
     Run Target.Value
    End If
End Sub

Mytå
Messages postés
2966
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
794
Re le Forum

Les deux méthodes dans le fichier : July74.xls

Mytå
Messages postés
47
Date d'inscription
vendredi 4 avril 2014
Statut
Membre
Dernière intervention
23 décembre 2018
1
Merci pour le fichier
Je l'ai essayer mais se peut-il que se soit le code
"If Not Application.Intersect"
Parce que en fait dans ma colonne j'ai plusieurs nom à traiter.
Il peut y avoir Lise, Yvan, Gilbert mais parfois juste Yvan & Gilbert...

Avec ce code le résultat est bon seulement pour le premier nom.
Messages postés
2966
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
794
Re le Forum

Les macros sont lancées lors de la saisie du nom dans la plage de cellule A1 à A10

Mytå
Messages postés
47
Date d'inscription
vendredi 4 avril 2014
Statut
Membre
Dernière intervention
23 décembre 2018
1
Ok c'était correct il y avait un erreur de mise à jour car j'ai enregistrer et fermer et en ré-ouvrant mon fichier tout marche comme il faut

c'est super!

Par contre la 2ième fonctionne pas " Run Target.Value"
Mais c'est pas grave la 1ère option est bonne.
Messages postés
47
Date d'inscription
vendredi 4 avril 2014
Statut
Membre
Dernière intervention
23 décembre 2018
1
Merci encore à toi Mytå