Macro qui se relance à chaque action
Fermé
aanallein
Messages postés
2
Date d'inscription
lundi 25 mars 2013
Statut
Membre
Dernière intervention
26 mars 2013
-
25 mars 2013 à 17:47
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 26 mars 2013 à 11:56
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 26 mars 2013 à 11:56
A voir également:
- Macro qui se relance à chaque action
- Tubidy film d'action telecharger - Télécharger - TV & Vidéo
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
2 réponses
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
28 décembre 2023
7 212
25 mars 2013 à 17:58
25 mars 2013 à 17:58
Bonjour,
Worksheet_Change(ByVal Target As Range) se lance à chaque saisie sur la feuille.
Tout au début il faut que tu testes la cellule ayant appelé l'évènement (Target, passée en paramètre)
Private Sub Worksheet_Change(ByVal Target As Range)
'
if not intersect(Target,[B3:B5]) is nothing then
' si l'intersection de Target et B3:B5 n'est pas vide alors
....
endif
La macro ne sera exécutée que si modif en B3:B5
Et si tu ne traites qu'une seule cellule ajoutze tout au début :
if target.count >1 then exit sub
Sinon ça plantera si par exemple qcq'un efface une plage.
eric
Worksheet_Change(ByVal Target As Range) se lance à chaque saisie sur la feuille.
Tout au début il faut que tu testes la cellule ayant appelé l'évènement (Target, passée en paramètre)
Private Sub Worksheet_Change(ByVal Target As Range)
'
if not intersect(Target,[B3:B5]) is nothing then
' si l'intersection de Target et B3:B5 n'est pas vide alors
....
endif
La macro ne sera exécutée que si modif en B3:B5
Et si tu ne traites qu'une seule cellule ajoutze tout au début :
if target.count >1 then exit sub
Sinon ça plantera si par exemple qcq'un efface une plage.
eric
aanallein
Messages postés
2
Date d'inscription
lundi 25 mars 2013
Statut
Membre
Dernière intervention
26 mars 2013
26 mars 2013 à 10:10
26 mars 2013 à 10:10
Bonjour Eric,
Merci infiniment de ta réponse.
Bon je t'avouerais que je n'ai pas tout compris.
Mais avec le début de ta réponse et le "If not intersect(Target...)" ma macro ne s'active seulement lorsque je change la valeur de la première cellule.
Par contre pour le "If target.count>1 then exit sub" je ne comprends pas comment l'utiliser.
Mon fichier est un formulaire à remplir. La première cellule conditionne le reste du formulaire à remplir.
Est-ce donc vraiment nécessaire de rajouter cette condition?
Merci infiniment de ta réponse.
Bon je t'avouerais que je n'ai pas tout compris.
Mais avec le début de ta réponse et le "If not intersect(Target...)" ma macro ne s'active seulement lorsque je change la valeur de la première cellule.
Par contre pour le "If target.count>1 then exit sub" je ne comprends pas comment l'utiliser.
Mon fichier est un formulaire à remplir. La première cellule conditionne le reste du formulaire à remplir.
Est-ce donc vraiment nécessaire de rajouter cette condition?
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
28 décembre 2023
7 212
26 mars 2013 à 11:56
26 mars 2013 à 11:56
Par contre pour le "If target.count>1 then exit sub" je ne comprends pas comment l'utiliser.
Tu mets juste ça en 1ère ligne.
Est-ce donc vraiment nécessaire de rajouter cette condition?
Sélectionne une plage et fais Suppr, tu auras ta réponse.
eric
Tu mets juste ça en 1ère ligne.
Est-ce donc vraiment nécessaire de rajouter cette condition?
Sélectionne une plage et fais Suppr, tu auras ta réponse.
eric