Macro remplacant formule conditionnelle?
aurelie91220
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour Chers Amis,
Je fais un tableau de suivi d'échéances de retour de dossier. Dans une des cellules ( G5) j'ai besoin que s'affiche trois conditions (" " , pas de relance, insérer date relance) cela en fonction d'une autre (E5) qui détermine si le dossier est retourné:OUI, retourné:NON ou En ATTENTE...
Pour cela j'ai fait une formule conditionnelle qui fonctionne bien:
=SI(E5="EN ATTENTE";"";SI(E5="OUI";"PAS DE RELANCE";SI(E5="NON";"INSÉRER DATE RELANCE";"")))
G5 me sert d'alerteur sur l'état du dossier mais aussi a indiquer si une relance est nécessaire. Donc lorsque apparait "INSÉRER DATE RELANCE" l'agent sait qu'il doit relancer et qu'il doit écrire dans cette cellule la date a laquelle il l'a fait. Cela sans écraser la formule, car j'ai créée une liste pour que les formules se régénèrent à chaque ligne.
J'ai pensé à une macro du coup mais sans trop savoir si cela serait possible et sans savoir comment faire.
Est-ce que quelqu'un pourrait m'aider?
Merci par avance!
Je fais un tableau de suivi d'échéances de retour de dossier. Dans une des cellules ( G5) j'ai besoin que s'affiche trois conditions (" " , pas de relance, insérer date relance) cela en fonction d'une autre (E5) qui détermine si le dossier est retourné:OUI, retourné:NON ou En ATTENTE...
Pour cela j'ai fait une formule conditionnelle qui fonctionne bien:
=SI(E5="EN ATTENTE";"";SI(E5="OUI";"PAS DE RELANCE";SI(E5="NON";"INSÉRER DATE RELANCE";"")))
G5 me sert d'alerteur sur l'état du dossier mais aussi a indiquer si une relance est nécessaire. Donc lorsque apparait "INSÉRER DATE RELANCE" l'agent sait qu'il doit relancer et qu'il doit écrire dans cette cellule la date a laquelle il l'a fait. Cela sans écraser la formule, car j'ai créée une liste pour que les formules se régénèrent à chaque ligne.
J'ai pensé à une macro du coup mais sans trop savoir si cela serait possible et sans savoir comment faire.
Est-ce que quelqu'un pourrait m'aider?
Merci par avance!
A voir également:
- Macro remplacant formule conditionnelle?
- Remplacant coco - Accueil - Réseaux sociaux
- Excel mise en forme conditionnelle formule - Guide
- Fermeture de Coco : les internautes à la recherche d'un remplaçant - Accueil - Réseaux sociaux
- Formule si et - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
4 réponses
Bonjour
il doit écrire dans cette cellule la date a laquelle il l'a fait. Cela sans écraser la formule qu'elle contient
Une cellule contient soit une formule, soit une valeur, mais pas les deux à la fois, et la modification de son contenu qu'elle provienne du clavier ou de vba écrase l'ancien contenu. J'ai bien peur que vba ne puisse contourner cette difficulté
Je ne sais pas ce qu'en pense pijaku que je salue au passage
Cdlmnt
il doit écrire dans cette cellule la date a laquelle il l'a fait. Cela sans écraser la formule qu'elle contient
Une cellule contient soit une formule, soit une valeur, mais pas les deux à la fois, et la modification de son contenu qu'elle provienne du clavier ou de vba écrase l'ancien contenu. J'ai bien peur que vba ne puisse contourner cette difficulté
Je ne sais pas ce qu'en pense pijaku que je salue au passage
Cdlmnt
Bonjour Pijaku,
C'est une solution, mais au préalable je voudrais trouver quelque chose de plus automatique un peu basé sur la forme d'un formulaire...
Je ferais ça si je ne trouve pas de macro.
Merci quand même.
C'est une solution, mais au préalable je voudrais trouver quelque chose de plus automatique un peu basé sur la forme d'un formulaire...
Je ferais ça si je ne trouve pas de macro.
Merci quand même.
Bonjour,
Pas très orthodoxe ton truc mais bon, un essai.
A mettre dans le module de la feuille :
Fait sur les lignes 2 à 10.
La colonne E doit être une saisie (liste déroulante acceptée).
Pour éviter de perdre une donnée je n'efface jamais la date. Si l'utilisateur modifie E il faudra supprimer la date en G pour récupérer le libellé.
A la réflexion (maintenant que c'est fini), comme tu passes en vba pourquoi ne pas mettre directement le libellé plutôt qu'une formule ?
Ca aurait été plus simple.
https://www.cjoint.com/?DHba1QK7ImD
eric
Pas très orthodoxe ton truc mais bon, un essai.
A mettre dans le module de la feuille :
Private Sub Worksheet_Change(ByVal Target As Range) Dim pl1 As Range, pl2 As Range, c As Range, lig As Long Set pl1 = [E2:E10] Set pl2 = [G2:G10] If Intersect(Target, Union(pl1, pl2)) Is Nothing Then Exit Sub Set pl1 = Intersect(Target.Offset(, 2), pl2) Set pl2 = Intersect(Target, pl2) If pl1 Is Nothing Then Set pl1 = pl2 ElseIf Not pl2 Is Nothing Then Set pl1 = Union(pl1, pl2) End If If pl1 Is Nothing Then Exit Sub For Each c In pl1 If Not IsDate(c) Then lig = c.Row Application.EnableEvents = False c.FormulaLocal = "=SI(E" & lig & "=""EN ATTENTE"";"""";SI(E" & lig & "=""OUI"";""PAS DE RELANCE"";SI(E" & lig & "=""NON"";""INSÉRER DATE RELANCE"";"""")))" Application.EnableEvents = True End If Next c End Sub
Fait sur les lignes 2 à 10.
La colonne E doit être une saisie (liste déroulante acceptée).
Pour éviter de perdre une donnée je n'efface jamais la date. Si l'utilisateur modifie E il faudra supprimer la date en G pour récupérer le libellé.
A la réflexion (maintenant que c'est fini), comme tu passes en vba pourquoi ne pas mettre directement le libellé plutôt qu'une formule ?
Ca aurait été plus simple.
https://www.cjoint.com/?DHba1QK7ImD
eric
mon +1 répondrait-il à ta question?
Quant au +1, merci, mais ça me parait beaucoup, 0.5 aurait largement suffi ;-)