Exécution automatique d'une macro en fonction des valeurs d'une colonne

Fermé
RichardKas - Modifié le 20 août 2019 à 16:40
yg_be Messages postés 22777 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 10 mai 2024 - 20 août 2019 à 17:34
Bonjour,


Je vous mets ce code: j'appelle différentes macro en fonction du texte contenu dans la cellule A6 (je souhaiterai que la condition ne soit pas figée; c'est à dire que la macro se déclenche aussi lorsque la valeurs des cellules A7, A8, A9... change). Pourriez-vous m'aider s'il vous plait? pour l'instant la macro fonctionne correctement, mais ne dépend que de la cellule A6; possible qu'elle dépende également des autres cellules (seule la colonne R est importante)... merci d'avance

Sub worksheet_change(ByVal target As Range)
Set target = Range("R6")
If target.Value = "Plus que  7 jour(s)" Then
 Call envoi_mail_auto_relance_1
End If
If target.Value = "Plus que  3 jour(s)" Then
Call envoi_mail_auto_relance_2
End If
If target.Value = "Plus que  1 jour(s)" Then
Call envoi_mail_auto_relance_relance
End If
End Sub
A voir également:

2 réponses

Je l’exécute dans le code de la feuille, pour l'exécution automatique de la macro
0
yg_be Messages postés 22777 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 10 mai 2024 1 481
Modifié le 20 août 2019 à 16:11
bonjour, merci d'utiliser les balises de code quand tu publies du code.
ton explication est confuse: tu mentionnes la colonne R, et toutes des cellules en colonne A.
je commencerais par supprimer la ligne
set target
, puis par mieux t'expliquer.
souhaites-tu que le code n'agisse que si une cellule de la colonne R est modifiée?
0
Salut YG_be,

Oui effectivement, je souhaite que ma macro s'exécute en fonction des valeurs contenues dans la colonne R;

je m'explique:

Je fais des relance (mes collègues doivent me répondre au maximum 14 jours après que j'ai mis à leur disposition, une feuille dans laquelle ils doivent faire des commentaires). Dans une colonne (colonne R), j'ai appliqué une formule qui fait une différence de date (Date d'aujourd'hui - Date à laquelle j'ai édité la feuille des commentaires), et affiche un résultat (par exemple: "Plus que 7 jours"); m'a macro aura pour rôle d'envoyer des mails automatiques en fonction des jours restants.

Le seul problème est que dans ma formule, cela ne s'applique que lorsqu’il y a des changements dans la cellule R6; j'aimerais que cela soit pour l'ensemble des cellules de la colonne R; c'est à dire si jamais la colonne R10 affiche "plus que 7 jours", je veux que la macro se déclenche

cdt
0
yg_be Messages postés 22777 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 10 mai 2024 1 481 > RichardKas
20 août 2019 à 17:34
c'est un peu plus compliqué:
la procédure _change déclenche sur les changements effectués dans les cellules où il y a des valeurs, pas sur les changements dans les cellules où il y a des formules.
as-tu fais le bon choix en utilisant la procédure _change? à quel moment veux-tu réellement envoyer des mails?

par ailleurs, quand tu fais appel aux procédures envoi_mail_auto_relance_, n'est-il pas utile que ces procédures sachent sur quelle ligne elles doivent travailler?
0