Date figée sans macro

Bonjour,

Je viens de lire les posts, ils sont très intéressants. Par co tre ils ne correspondent pas à ce que je souhaite faire. Je m'explique:
Je souhaiterais que la date de saisie se mette automatiquement dans la colonne À lorsque je rentre une donnée dans la colonne B.
Comme les autres personnes, les formules "aujourd'hui", "maintenant"... Me donnent la date mais elle les met à jour à chaque nouvelle ouverture.
Le code VBA j'ai réutilisé ce que j'ai trouvé, pour le coup ça fonctionne. CEPENDANT, dès que je rentre la macro, je ne peux plus faire de retour en arrière...ce qui ne me conviens pas.
Y aurait-il un moyen de mettre une date automatiquement, quelle se figé à la date de saisie, et que l'on puisse revenir en arrière si on a fait une faute ou effacé une donnée involontairement ?

Merci

Configuration: Android / Chrome 80.0.3987.132

4 réponses

  1. Bonjour,

    question récurrente, à part manuellement cliquer sur Ctrl et ; ou macro il reste peu de possibilité

    en VBA on peut faire une boule pour tester si la cellule est date et faire un copier/collage spécial/valeur
    1
    1. bonjour à tous les deux

      essaies ceci
      la date en B4, l'entrée en C4
      Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Count > 1 Then Exit Sub
      If Not Intersect(Target, Range("C4")) Is Nothing Then
        If Not IsDate(Range("B4").Value) Then Range("B4").Value = Date
      End If
      End Sub

      mais le plus simple est un Ctrl + ; comme dit Mike

      Cdlmnt
      1
      1. Ça fonctionne avec les cellules, c'est top, merci !
        Par contre comment je peux l'adapter non pas juste à la cellule B4 pour C4, mais à toutes les cellules de la colonne B pour les cellules de la colonne C ?
        0
      2. Je ne connaissais pas la technique du "ctrl+ ; " c'est également une très très bonne astuce ! ????
        0
    2. Re,

      en modifiant ces deux lignes comme cela pour tester les cellules de C2 à C50 à adapter éventuellement en C:C pour traiter toute la colonne
      mais il y a plusieurs façons d'écrire le code

      If Not Intersect(Target, Range("C2:C50")) Is Nothing Then
      If Not IsDate(Target.Offset(0, -1).Value) Then Target.Offset(0, -1).Value = Date

      0
      1. Bonjour,

        Fonction date de première saisie dans une cellule avec la formule contenant une référence circulaire
        Avec D1 cellule saisie et D2 cellule contenant la formule de date de saisie suivante :
        =SI(D1="";"";SI(D2<>"";D2;AUJOURDHUI()))

        Il faut autoriser les calculs itératifs dans :
        Fichier, options, formules en cochant la case "Activer le calcul itératif"
        0