Date automatique dans excel

Résolu
AMISDAL Messages postés 173 Statut Membre -  
AMISDAL Messages postés 173 Statut Membre -
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. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
     
    bonjour,
    =SI(A1="X";AUJOURDHUI();"")

    si 'une croix' est un X ou un x
    6
  2. AMISDAL Messages postés 173 Statut Membre 2
     
    merci beaucoup
    0
  3. AMISDAL Messages postés 173 Statut Membre 2
     
    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
  4. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. AMISDAL Messages postés 173 Statut Membre 2
     
    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
  7. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
     
    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
  8. AMISDAL Messages postés 173 Statut Membre 2
     
    Excusez moi mais je n'ai encore jamais fait de macro et je ne comprends pas vraiment ce qu'il faut faire...
    0
    1. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
       
      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
  9. AMISDAL Messages postés 173 Statut Membre 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
  10. AMISDAL
     
    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. AMISDAL Messages postés 173 Statut Membre 2
       
      en fait la formule ne marche pas, je ne sais pas si l'on peut mettre plusieurs codes sur une feuille
      0
    2. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
       
      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. AMISDAL Messages postés 173 Statut Membre 2
       
      ç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
  11. AMISDAL Messages postés 173 Statut Membre 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
  12. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
     
    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
  13. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  14. AMISDAL Messages postés 173 Statut Membre 2
     
    merci dobo69 ça marche super
    0