Résolu XL 2016 Figer la date Aujourd'hui après modification

adie35

XLDnaute Nouveau
Bonjour,
J'ai beaucoup regardé sur internent mais je n'arrive pas à appliquer de formule ou code vba car je suis une vraie débutante.
Je voudrais que dès que l'on effectue un changement dans la colonne "indice" la date de la colonne "date cde" se met à jour mais reste figée le lendemain si on ouvre le fichier.
Pouvez-vous m'aider.
En vous remerciant par avance
 
Ce fil a été résolu! Aller à la solution…

Fichiers joints

JHA

XLDnaute Barbatruc
Bonjour à tous,

A essayer
VB:
=SI([@DATE]=0;0;SI([@[DATE CDE]]>0;[@[DATE CDE]];AUJOURDHUI()))
Menu Fichier/option/Formules/ Activer le calcul itératif

JHA
 

Fichiers joints

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Adie, JHA,
Un essai en PJ avec une petite macro événementielle :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Column = 6 And Cells(Target.Row, 1) <> "" Then
        Cells(Target.Row, 7) = Date
    End If
End Sub
Par contre, dans l'état, si on remodifie Indice, cela remodifiera date CDE.
 

Fichiers joints

adie35

XLDnaute Nouveau
Merci JHA,
J'ai remplacé par maintenant pour voir ci celà fonctionne et c'est bon mais lorsque je change l'indice la date (enfin l'heure là pour tester) ne change pas automatiquement. Est-ce normal?

Bonjour à tous,

A essayer
VB:
=SI([@DATE]=0;0;SI([@[DATE CDE]]>0;[@[DATE CDE]];AUJOURDHUI()))
Menu Fichier/option/Formules/ Activer le calcul itératif

JHA
 

adie35

XLDnaute Nouveau
Sylvanu merci pour ton code. Je vais le tester dans mon fichier et voir demain ci ça change.
Question : avec ce code on a plus besoin de mettre de formule =Aujourdhui dans la colonne?

Bonjour Adie, JHA,
Un essai en PJ avec une petite macro événementielle :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Column = 6 And Cells(Target.Row, 1) <> "" Then
        Cells(Target.Row, 7) = Date
    End If
End Sub
Par contre, dans l'état, si on remodifie Indice, cela remodifiera date CDE.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Plus de formule en colonne G.
Quand on change la valeur de l'indice, la date CDE se modifie.
En plus elle est en "dur" donc elle ne se modifiera plus jusqu'à ce qu'on change à nouveau Indice.
 

adie35

XLDnaute Nouveau
OK mais alors lors de la première saisie, la date doit être tapée manuellement, elle ne s'affiche pas automatiquement?
Plus de formule en colonne G.
Quand on change la valeur de l'indice, la date CDE se modifie.
En plus elle est en "dur" donc elle ne se modifiera plus jusqu'à ce qu'on change à nouveau Indice.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Peut être un excès de zèle.
Si vous changer l'indice, je regarde s'il y a un code. S'il n'y a pas de code je ne fait rien.
C'était pour éviter les modifs intempestives si on rentre un indice sans avoir rempli la ligne.
En PJ sans cette sécurité.
 

Fichiers joints

adie35

XLDnaute Nouveau
Je suis désolé quelque chose doit m'échapper.
Je vois bien que tu as enlevé la partie And Cells mais sur ton fichier cela ne fonctionne pas, la date ne s'insère pas à la saisie

Peut être un excès de zèle.
Si vous changer l'indice, je regarde s'il y a un code. S'il n'y a pas de code je ne fait rien.
C'était pour éviter les modifs intempestives si on rentre un indice sans avoir rempli la ligne.
En PJ sans cette sécurité.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Je fais exactement ce que vous avais demandé:
Je voudrais que dès que l'on effectue un changement dans la colonne "indice" la date de la colonne "date cde" se met à jour mais reste figée le lendemain si on ouvre le fichier.
Dès qu'on change une valeur dans Indice la date s'insère automatiquement et reste figée :
20200529_194219.gif
Ou alors quelque chose m'a échappé.
 
Ce message a été identifié comme étant une solution!

patricktoulon

XLDnaute Barbatruc
bonjour
après avoir mis un indice tu pourra plus le changer
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Or Target.Column <> 6 Then Exit Sub
        If Cells(Target.Row, 7) <> "" Then
            MsgBox "VOUS NE POUVEZ PAS CHANGER CETTE LIGNE!!!"
            With Application
                .EnableEvents = False
                .Undo
                .EnableEvents = True
            End With
        Else
            Cells(Target.Row, 7) = Date
        End If
 End Sub
 

adie35

XLDnaute Nouveau
Bonjour,

Votre solution a très bien marché sur mon ordi. Parcontre quand je l'ai testé sur d'autres (version 2013 et un 2016) j'ai eu un message d'erreur cf ci dessous
1591088426172.png
Comment puis-je résoudre le problème?

Je fais exactement ce que vous avais demandé:

Dès qu'on change une valeur dans Indice la date s'insère automatiquement et reste figée :
Voir la pièce jointe 1068709
Ou alors quelque chose m'a échappé.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Ne disposant que de 2007, je ne peux tester.
Essayez avec Now.
En mettant les cellules en format Date, car Now renvoie un nombre du genre : 02/06/2020 11:44:57
 

_Thierry

XLDnaute Barbatruc
Bonjour @adie35 @sylvanu @patricktoulon @JHA, le Forum

L'erreur en photo du Post#12 ne signifie pas forcément que c'est "Date" qui bloque et n'est pas trouvé dans le Projet ou Bibliothèque. (Parfois le débogueur VBA est très "bête")

Il faut que tu vérifies si tu n'as pas ajouté des références à des OCX ou DLL non existantes dans les PCs où tu as testé. (Aller dans Tools => References et voir si il ne manque pas une ou des références).

Bonne journée
@+Thierry
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas