fichier de suivi - remplissage d'une date lors d'un changement d'état

  • Initiateur de la discussion Initiateur de la discussion Eusebio
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

Eusebio

Guest
Bonjour,
Je me suis réalisé un fichier de suivi de tâches à faire (cf pièce jointe), dans lequel, pour chaque ligne, j'aimerais renseigner automatiquement la date de fin au moment où je choisis l'état "terminée".

ce qui ne marche pas: dans la colonne date, si je mets la formule suivante : =SI(C3="terminée";AUJOURDHUI();"")
la date sera bien renseignée au changement d'état, mais lorsque j'ouvrirai le document 2 jours plus tard, la date sera recalculée et sa valeur vaudra le "aujourd'hui" de 2 jours plus tard, et pas une date figée.

Comment résoudre ceci ?
Merci
 

Pièces jointes

Re : fichier de suivi - remplissage d'une date lors d'un changement d'état

Bonjour Eusebio, Bonjour le forum

Une solution par VBA. Pour mettre le code : clic doit sur l'onglet, puis visualiser le code dans le menu contextuel et coller le code ci-après :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$3" Then Exit Sub
If Target.Value = "terminée" Then
    Target.Offset(O, 1).Copy
    Target.Offset(0, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    Application.CutCopyMode = False
End If
End Sub
Cette solution présente l’inconvénient de supprimer ta formule test (si pour garder la valeur de la date. Dans ce cas, on peut inscrire la date terminée en dessous:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$3" Then Exit Sub
If Target.Value = "terminée" Then
    Target.Offset(O, 1).Copy
    Target.Offset(1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    Application.CutCopyMode = False
End If
End Sub
A+ Jack2
 
Re : fichier de suivi - remplissage d'une date lors d'un changement d'état

Merci ! Ce bout de code m'a permis d'avancer ; j'ai ajouté quelques modifs au script proposé pour
- prendre en compte un changement dans n'importe quelle cellule de la colonne C
- renseigner la date correctement
- remettre à 0 la valeur si l'état est rebasculé à différent de "abandonnée" ou "terminée"
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 3 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Target.Value = Range("Q4").Value Or Target.Value = Range("Q5") Then
    Target.Offset(O, 1).Value = Date
ElseIf Target.Value = Range("Q2").Value Or Target.Value = Range("Q3") Then
    Target.Offset(O, 1).Value = ""
End If
End Sub
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

M
Réponses
0
Affichages
2 K
M
M
Réponses
5
Affichages
66 K
Mixomatoze
M
L
Réponses
0
Affichages
3 K
LiuXing
L
D
Réponses
13
Affichages
2 K
Z
Retour