Date automatique dans excel

Résolu
Bonjour,

Serait il possible dans excel de mettre dans une colonne automatiquement la date du jour lorsque l'on met une croix dans une autre colonne ?
Merci

13 réponses

  1. bonjour,
    =SI(A1="X";AUJOURDHUI();"")

    si 'une croix' est un X ou un x
    6
    1. Bonjour,
      Par rapport à l'insertion automatique d'une date, comment faire pour que celle ci ne change pas quand on change de jour ?
      Merci
      0
      1. bonjour,

        il faut pour le coup passer par un code vba pour que cette date puisse etre 'figée' (ce que ne peut pas faire une fonction).
        A télécharger petit fichier exemple :
        http://cjoint.com/data/goqgSe3pu6_insererdate.xls
        Si vous n'avez besoin de rien, demandez-moi.
        0
        1. Bonjour,
          Ok ça marche mais... quand j'ai une colonne entière à marquer de cette manière, comment faire la copie de cette donnée
          Merci
          0
          1. bonjour,

            Déjà fait précédemment sur un autre topic par Michel_m (que je salue au passage) et à qui reviennent donc les droits et remerciement...
            http://www.cijoint.fr/cj201006/cijMpViEmi.xls
            0
            1. Excusez moi mais je n'ai encore jamais fait de macro et je ne comprends pas vraiment ce qu'il faut faire...
              0
              1. dans votre fichier faire clic-droit sur l'onglet concerné et 'visualiser le code' Cela ouvre l'éditeur Visual Basic sur le module de votre feuille.
                Coller le code suivant :
                Private Sub Worksheet_Change(ByVal Target As Range)
                If Intersect(Target, Range("B2:B1000")) Is Nothing Then Exit Sub
                Target.Offset(0, -1) = Now
                End Sub

                Pour adapter à votre cas :
                2°ligne : indique la plage sur laquelle le test doit etre porté (cellules que l'on remplie)
                à modifier donc pour votre propre plage : "B2:B1000" par C10:C50 par exemple.
                3°ligne :
                Offset(0, -1) indique à la macro de sélectionner la case de la colonne d'avant (Offset indique le déplacement et (0, -1) le sens du déplacement en l'occurrence 0 ligne et -1 colonne, donc concrètement la macro se place sur la cellule colonne A de la même ligne que la saisie.

                le nom de la macro inclut le nom Worksheet_Change qui signifie qu'elle se déclenche à chaque modification dans la feuille. On peut donc considérer qu'elle est "automatique"
                0
            2. J'ai pas encore tout compris mais je crois que je vais étudier tout ça la tete reposée je vous tiens au courant de mes avancées !!!
              0
              1. Bonjour,
                Ca y est je crois que j'ai compris. Mais maintenant, j'ai plusieurs fois dans la meme feuille la meme demarche à faire, quand je copie la formule en dessous de la première dans visualiser le code, la fonction marche mais à chaque fois il me dit ; Erreur de compilation - Nom ambigu détecté : worksheet_change
                Faut-il l'appeler autrement et comment
                Merci
                0
                1. en fait la formule ne marche pas, je ne sais pas si l'on peut mettre plusieurs codes sur une feuille
                  0
                2. bonjour,

                  cela se passe dans
                  If Intersect(Target, Range("B2:B1000")) Is Nothing Then Exit Sub

                  où il faut mettre à la place de "B2:B1000" la ou les plages que vous souhaitez :
                  "B1:B50;E2;F3:F25" par exemple pour une plage de cellules non contiguës.
                  0
                3. ça ne marche pas il m'indique erreur d'execution '1004' - la méthode 'Range' de l'objet '_worksheet' a échoué.
                  Ensuite il me dit de faire fin ou debogage que faut il faire
                  0
              2. En plus j'ai mis un commentaire et je ne sais pas si vous pouvez le lire comme ça donc je le remets....
                ça ne marche pas il m'indique erreur d'execution '1004' - la méthode 'Range' de l'objet '_worksheet' a échoué.
                Ensuite il me dit de faire fin ou debogage que faut il faire
                0
                1. Il y a effectivement une erreur dans ce que j'ai écris
                  Les sélections multiples en VBA s'écrivent avec une virgule et non pas un point virgule : "B1:B50,E2,F3:F25". Cependant dans ce cas cela renvoie malgré tout une erreur. Par contre, ce n'est pas très "propre" mais en annulant l'erreur le code remplis sa fonction....
                  remplacer donc le code de la feuille par celui-ci (avec bien sur votre propre 'Range' :

                  Private Sub Worksheet_Change(ByVal Target As Range) 
                  On Error Resume Next 
                  If Intersect(Target, Range("B2:B10,F2:F10")) Is Nothing Then Exit Sub 
                  Target.Offset(0, -1) = Now 
                  End Sub

                  Si vous n'avez besoin de rien, demandez-moi.
                  0
                  1. Contributeur
                    Bonsoir,

                    Il y a aussi la solution simple de ctrl+; qui inscrit la date
                    Et tirer vers le bas en maintenant ctrl appuyé pour la recopier
                    eric
                    0
                    1. merci dobo69 ça marche super
                      0