Figer une date

Hello ô grand maître d'Excel qui m'ont déjà sorti de maints problèmes !

Le nullard en formule et macro que je suis (mais qui apprend) a un soucis dans le fichier que vous pouvez trouver en pièce jointes.

Dans la colonne "Signature résolution" vous pouvez sélectionner divers initiales. Une fois que vous en sélectionnez un, la case d'à côté est rempli avec la date du jour. Mon problème c'est que la fonction étant dynamique, la date se remet chaque jour "à jour". Alors que j'ai besoin qu'elle reste figé.

En gros "JUFO" a résolu le problème le 23.03.2020 et que ca reste.

J'ai cru comprendre en lisant un peu que c'était pas possible via une formule.Il existe des macros, mais je n'arrive pas à les adapter à ma page. (Nullard que je vous dis )

Merci d'avance !

Julien

1372test.xlsm (10.80 Ko)

Bonsoir,

il suffit de mettre en place une surveillance événementielle sur la colonne "O" afin de détecter la mise en place d'une signature, alors on modifie la valeur de la cellule d'à coté en prenant sa valeur et en la copiant à la place de la formule.

Formule qui n'a pu lieu d'être, puisqu'il suffit d'y inscrire en dure "Non résolu". Mais dans ce cas le code est à modifier afin d'y inscrire la date du jour et non plus la valeur calculée de la formule :

Code avec la formule :

Private Sub Worksheet_Change(ByVal Target As Range)
    ' s'il y a plus d'une cellule de sélectionner, on quitte
    If Target.CountLarge > 1 Then Exit Sub
    ' si la cellule modifiée fait partie de la colonne O
    If Not Intersect(Target, Range("O:O")) Is Nothing Then
        ' on vérifie qu'il y a bien une donnée
        If Target.Value <> "" Then
            Application.EnableEvents = False
                Target.Offset(, 1).Value = CDate(Target.Offset(, 1))
            Application.EnableEvents = True
        End If
    End If
End Sub

Code sans la formule :

Private Sub Worksheet_Change(ByVal Target As Range)
    ' s'il y a plus d'une cellule de sélectionner, on quitte
    If Target.CountLarge > 1 Then Exit Sub
    ' si la cellule modifiée fait partie de la colonne O
    If Not Intersect(Target, Range("O:O")) Is Nothing Then
        ' on vérifie qu'il y a bien une donnée
        If Target.Value <> "" Then
            Application.EnableEvents = False
                Target.Offset(, 1).Value = CDate(Date)
            Application.EnableEvents = True
        End If
    End If
End Sub

Maintenant, s'il ne faut pas du tout de modification, alors il faut ajouter un code de vérification afin d'empêcher les modifications futurs.

@ bientôt

LouReeD

Merci Beaucoup !!!

Merci à vous de vos remerciements !

@ bientôt

LouReeD

Rechercher des sujets similaires à "figer date"