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
 

Pièces jointes

  • exemple.xlsx
    10.7 KB · Affichages: 10
Solution
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é.

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
 

Pièces jointes

  • exemple (11).xlsx
    11 KB · Affichages: 10

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.
 

Pièces jointes

  • exemple (9).xlsm
    20.3 KB · Affichages: 7

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
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é.
 

Pièces jointes

  • exemple (10).xlsm
    20.3 KB · Affichages: 10

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é.
 

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 :
Regarde la pièce jointe 1068709
Ou alors quelque chose m'a échappé.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
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
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 889
Membres
101 831
dernier inscrit
gillec