Appel d'une macro si colonne x contiens valeur x

Résolu/Fermé
July74
Messages postés
47
Date d'inscription
vendredi 4 avril 2014
Statut
Membre
Dernière intervention
23 décembre 2018
- 10 déc. 2014 à 20:16
July74
Messages postés
47
Date d'inscription
vendredi 4 avril 2014
Statut
Membre
Dernière intervention
23 décembre 2018
- 11 déc. 2014 à 18:04
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

Mytå
Messages postés
2967
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
904
10 déc. 2014 à 20:56
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å
0
July74
Messages postés
47
Date d'inscription
vendredi 4 avril 2014
Statut
Membre
Dernière intervention
23 décembre 2018
1
10 déc. 2014 à 22:01
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
0
Mytå
Messages postés
2967
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
904
Modifié par Mytå le 10/12/2014 à 22:57
Re le Forum

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

Mytå
0
Mytå
Messages postés
2967
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
904
10 déc. 2014 à 21:06
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å
0
Mytå
Messages postés
2967
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
904
10 déc. 2014 à 22:55
Re le Forum

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

Mytå
0
July74
Messages postés
47
Date d'inscription
vendredi 4 avril 2014
Statut
Membre
Dernière intervention
23 décembre 2018
1
11 déc. 2014 à 15:58
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mytå
Messages postés
2967
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
904
11 déc. 2014 à 16:47
Re le Forum

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

Mytå
0
July74
Messages postés
47
Date d'inscription
vendredi 4 avril 2014
Statut
Membre
Dernière intervention
23 décembre 2018
1
11 déc. 2014 à 17:46
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.
0
July74
Messages postés
47
Date d'inscription
vendredi 4 avril 2014
Statut
Membre
Dernière intervention
23 décembre 2018
1
11 déc. 2014 à 18:04
Merci encore à toi Mytå
0