Pb / Date du jour en fonction d'une cellule qui a une formule

Bonjour à tous,

Je suis sur quelque chose qui paraît très simple mais je n'y arrive pas ^^

J'ai dans une colonne une formule qui me donne certains statuts dont un statut "Terminé". Quand ce statut est à Terminé , j'aimerai qu'une cellule dans la colonne Fin soit renseignée avec la date du jour.

Vu sur le net, j'ai récupéré une fonction Aujourdhui = now, le problème c'est que si je mets dans ma cellule colonne Fin

=SI(S1="Terminé"; Aujourdhui_Static(); "") .............Ca ne marche pas car je suppose qu'il ne lit pas le résultat....

Comment me sortir de là ? :) Merci pour votre aide.

La fonction

Public Function Aujourdhui_Static() As Date
Aujourdhui_Static = Now
End Function

Hello,

Pour moi si tu veux la date c’est la fonction Date et pas Now qu’il faut.

De plus si tu veux qu’elle soit statique tu ne dois pas l’utiliser dans une fonction mais dans un module avec une boucle qui va s’effectuer quand tu vas exécuter ta macro sinon ça se remettra à jour en permanence. Peut être que je n’ai pas bien saisi ta problématique également

@+

Hello,

Oui c'est ça - Ci-dessous la macro pour S = Terminé alors BD = Date mais ça ne fonctionne pas grrrr

Private Sub Worksheet_Calculate()
Dim ws As Worksheet
Dim ligneActive As Long
Dim valeurS As String

Set ws = ActiveSheet
ligneActive = ActiveCell.Row

' Lecture de la valeur dans la colonne S de la ligne active
valeurS = ws.Cells(ligneActive, "S").Value

' Mise à jour de la colonne BD si S = "Terminé"
If valeurS = "Terminé" Then
ws.Cells(ligneActive, "BD").Value = Date
Else
ws.Cells(ligneActive, "BD").ClearContents
End If
End Sub

bonjour Raoulshiro,

ceci fonctionne si la colonne S contient "Terminé" et valeur fixe, (ne pas le résultat d'une formule)

Private Sub Worksheet_Change(ByVal Target As Range)
     Dim c     As Range
     Set c = Intersect(Target, Me.Columns("S"))     'toutes les cellules modifiées en colonne S
     If c Is Nothing Then Exit Sub

     For Each c0 In c.Cells                  'boucler ces cellules
          Set c1 = Me.Cells(c0.Row, "BD")    'cellule même ligne colonne BD
          If StrComp(c0.Value, "Terminé", 1) = 0 Then     'c'est terminé
               If Len(c1.Value) = 0 Then c1.Value = Date     'la cellule BD était vide >>> remplir avec aujourd'hui
          Else
               If Len(c1.Value) Then c1.ClearContents
          End If
     Next
End Sub

Bonjour Bart,

Dsl pour ma réponse tardive er merci pour ton aide. J'ai effectivement trouvé, mon pb venait principalement de la zone de colonnes a surveiller qui n'était pas complète ! :)

Rechercher des sujets similaires à "date jour fonction qui formule"