XL 2016 Indiquer la date du jour dans une cellule sans effacer les précédentes

ReneDav14000

XLDnaute Occasionnel
Bonjour à toutes et à tous,
Tout est dit dans l'intitulé de la question. Je cherche à mettre en place une fonction qui me permettrait la saisie automatique de la date du jour sans effacer les précédentes dates.
Si j'enregistre des données le 05/10/2022 par exemple, et que j'en enregistre des nouvelles le 06/10/2022, je souhaite que la date du 5 reste sans être modifiée parce que l'on est le 6 et ainsi de suite au fur et à mesure des enregistrements.
J'espère que je suis suffisamment clair.
Auriez-vous une piste à me soumettre s'il vous plaît ?
En vous remerciant par avance
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour ReneDav,
je souhaite que la date du 5 reste sans être modifiée parce que l'on est le 6 et ainsi de suite au fur et à mesure des enregistrements.
J'espère que je suis suffisamment clair.
Non pas franchement.
Mettez un petit fichier test avec l'attendu, ce sera plus simple.
Dans la cellule doit on mettre toutes les dates, si oui comment ?
 

ReneDav14000

XLDnaute Occasionnel
Bonjour ReneDav,


Non pas franchement.
Mettez un petit fichier test avec l'attendu, ce sera plus simple.
Dans la cellule doit on mettre toutes les dates, si oui comment ?
Bonjour,
Désolé de répondre aussi tardivement. C'est un tableau de pointage d'horaires d'arrivées et de sorties.
Normalement il est prévu qu'une sauvegarde du tableau soit faite tous les jours avant une remise à zéro.
Mais si le responsable n'a pas eu le temps, les agents doivent pouvoir pointer le lendemain sans que cela affecte ce qui a été fait la veille.
 

Pièces jointes

  • exemple.xlsm
    10.6 KB · Affichages: 5

jcf6464

XLDnaute Impliqué
Bonjour à tous et le forum,

pour ma part ayant eu ce problème cet de mettre la cellule lier avec un calendrier car comme ces dit la date est en automatique la date du 6/01/2022 sera supprime en ouvrant le classeur vu que c'est en automatique,
bonne continuation jcf64
 

Pièces jointes

  • exemple-3.xlsm
    87.1 KB · Affichages: 6

ReneDav14000

XLDnaute Occasionnel
Bonjour à tous et le forum,

pour ma part ayant eu ce problème cet de mettre la cellule lier avec un calendrier car comme ces dit la date est en automatique la date du 6/01/2022 sera supprime en ouvrant le classeur vu que c'est en automatique,
bonne continuation jcf64
Bonjour et merci pour votre réponse.
C'est justement ce problème que je cherche à contourner puisqu'il ne sera pas possible d'aller dans la cellule, la saisie manuelle étant interdite.
J'espère que nous allons trouver la solution et la partager avec vous à toute fin utile
 

ReneDav14000

XLDnaute Occasionnel
J'avais pensé à quelque chose comme ça :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("a1")) Is Nothing Then Exit Sub
If [a1] <> " " Then [b2] = Date
End Sub
ça marcherai pour A1 et B2 mais comment le répéter afin que toute la feuille soit concernée
Si la cellule de la colonne A n'est pas vide alors on ne modifie pas la cellule sur la même ligne dans la colonne B
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Peut être :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A2:A1000")) Is Nothing Then Exit Sub
    If Target <> "" And Cells(Target.Row, "B") = "" Then Cells(Target.Row, "B") = Date
End Sub
Mais si votre feuille est protégée, alors la colonne B n'est pas accessible en VBA, dans ce cas :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A2:A1000")) Is Nothing Then Exit Sub
    If Target <> "" And Cells(Target.Row, "B") = "" Then
        ActiveSheet.Unprotect
        Cells(Target.Row, "B") = Date
        ActiveSheet.Protect
    End If
End Sub
 

ReneDav14000

XLDnaute Occasionnel
Peut être :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A2:A1000")) Is Nothing Then Exit Sub
    If Target <> "" And Cells(Target.Row, "B") = "" Then Cells(Target.Row, "B") = Date
End Sub
Mais si votre feuille est protégée, alors la colonne B n'est pas accessible en VBA, dans ce cas :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A2:A1000")) Is Nothing Then Exit Sub
    If Target <> "" And Cells(Target.Row, "B") = "" Then
        ActiveSheet.Unprotect
        Cells(Target.Row, "B") = Date
        ActiveSheet.Protect
    End If
End Sub
Oui effectivement, j'avais oublié ce gros détail. La feuille n'est pas entièrement protégée il n'y a que quelques colonnes dont la B
Merci pour votre code, je vais essayer. Par contre je ne saurai si ça marche que demain au changement de jour.
 

Discussions similaires

Statistiques des forums

Discussions
314 493
Messages
2 110 197
Membres
110 703
dernier inscrit
papysurf