Figer une heure dans une cellule

Résolu
Bonjour,
Dans le tableau que je prépare, je souhaite qu'à chaque fois que je valide une case, l'heure réelle (de l'ordi) s'affiche dans la cellule d'à coté. Le problème en utilisant la fonction maintenant(), c'est que toutes les heures précédentes sont modifiées et égales à la dernière valeur. Avez-vous une solution "simple" sans passer par une macro.
Merciiiiiiiiiiii.

14 réponses

  1. Re,

    essaye comme cela

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("F1:F10")) Is Nothing Then
    If Target <> "" Then Target.Offset(0, 0) = Time
    End If
    End Sub
    1. Bonjour

      Merci beaucoup ça marche super bien !!!
      Au top Mike 31
  2. Re,

    Si le code est destiné à une feuille, il est impossible d'utiliser la même syntaxe pour la même feuille
    Private Sub Worksheet_Change(ByVal Target As Range)
    il faut simplement compléter le code.
    on pourrait écrire le code différemment, mais pour faire simple, et suivre facilement l'action je te conseille à tes débuts d'écrire le code par ligne
    cette ligne saisie la date et l'heure en D7;D11 si tu saisis une valeur en C7:C11
    If Not Intersect(Target, Range("C7:C11")) Is Nothing Then Target.Offset(0, 1) = Now
    cette ligne saisie l'heure en H1:H10 lorsque tu saisis une valeur en F1:F10 (saute une colonne)
    A toi d'essayer de l'adapter et éventuellement d'ajouter des lignes

    exemple de code à coller dans les propriété de la feuille
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C7:C11")) Is Nothing Then Target.Offset(0, 1) = Now
    If Not Intersect(Target, Range("F1:F10")) Is Nothing Then Target.Offset(0, 2) = Time
    End Sub
    1. Bonjour,

      J'ai essayé la macro ci dessus, ça fontionne super bien!!
      j'ai cependant une question : dans ma macro j'ai écrit If Not Intersect(Target, Range("F1:F10")) Is Nothing Then Target.Offset(0,0) = Time
      ce qui me permet de voir apparaître l'heure dans ma cellule de saisie
      Mais si je souhaite effacer la saisie comment faire?
      Quoique je tape l'heure s'affiche
      N'y a t'il pas une macro qui permet de dire par exemple: si je clique sur suppr alors la cellule redevient vide ?
      Merci de ton aide
  3. Tel le débutant moyen je viens de me rendre compte que tout fonctionne au poil, en fermant puis réouvrant le fichier la macro a du s'enregistrer.....
    Puis-je recopier autant de fois la macro en changeant les coordonnées des cellules, pour les différents tableaux de ma feuille ?
    Merci pour toute ta compétence et ta bienveillance.
    Bien cordialement
    1. Salut Mike31,
      Toujour pareil, sur une feuille vierge ça va, mais sur mon fichier ça bloque.
      Est il possible que je te joigne mon fichier pour voir ce qui ne va pas.
      Bien cordialement
      1. Après reessai sur une page vierge , c'est OK tout baigne. J'ai remplacé Date par Time et j'ai l'heure dans le format voulu.
        Mais dans la feuille de mon fichier, j'ai des cellules avec liste déroulante sur C7 ....C11 et l'heure doit s'afficher en D7 ...D11.
        Dans ton programme j'ai remplacé "Range("A1:A50")) " par "Range("C7:C11"))", mais l'heure ne s'affiche pas.
        Guide moi encore un peu .....
        cordialement
        1. Contributeur
          Tout dépend ce que tu appelles une liste déroulante.
          Certains objets peuvent de pas générer d'évènement change.
          Il faudrait un exemple de ton fichier.
          cijoint.fr et coller ici le lien fourni
          erice
        2. Re, salut Eriiic,

          Oui tout a fait mais avec une liste de validation de données il ne devrait pas y avoir de problème
          et pour compléter l'affichage, il est possible d'afficher la date, l'heure ou les deux avec Now

          Private Sub Worksheet_Change(ByVal Target As Range)
          If Not Intersect(Target, Range("C7:C11")) Is Nothing Then
          Target.Offset(0, 1) = Now
          End If
          End Sub

          cordialement
          Mike-31
      2. Contributeur
        Bonjour,

        La macro de mike marche très bien, il faut saisir qcq chose en A pour que la date s'affiche en B.
        Si tu veux l'heure remplace =Date par =Time
        http://www.cijoint.fr/cjlink.php?file=cj201105/cijwtifPhS.xls

        eric
        1. Re,

          Non la solution est là, explique seulement ton problème

          Tu veux quoi la date, l'heure ou la date et l'heure !

          ensuite dans quelle colonne !

          et à partir de quelle action en saisissant une données dans une cellule !

          et dans quelle plage exemple A1 à A500 !
          A+
          Mike-31

          Une période d'échec est un moment rêvé pour semer les graines du savoir.
          1. merci de ton aide,
            la solution que tu me proposes ne marche pas. Pour que la date s'affiche dans la cellule B, il faut cliquer dessus et je n'ai pas l'heure...
            Merci d'avoir essayer, je ne pensais pas que cela pouvait être si compliqué.
            cordialement
            1. Merci de ton aide mike 31
              je test et je te tiens au courant
              cordialement
              1. Re,

                On va faire simple exemple si tu saisis une valeur colonne A entre A1 et dans mon exemple A50
                et tu souhaites que la date s'affiche en colonne B sur la même ligne

                clic droit sur l'onglet de feuille concernée/Visualiser le code
                colle le code ci-dessous dans la feuille blanche qui s'ouvre
                revient sur ta feuille de calcul en cliquant sur le signe l'outil Excel dans la barre d'outil

                Private Sub Worksheet_Change(ByVal Target As Range)
                If Not Intersect(Target, Range("A1:A50")) Is Nothing Then
                Target.Offset(0, 1) = Date
                End If
                End Sub
                1. bonjour,
                  y-a-t-il quelqu'un pour trouver une réponse à mon problème ?
                  Merci ....
                  1. As tu une proposition de macro pour réaliser cette fonction et peux tu m'expliquer comment l'installer.
                    cordialement
                    1. Merci "Mike-31" et "chossette9",
                      en fait je veux que l'affichage de l'heure soit automatique.
                      Avec une formule du style: =si(esttexte(F2);...........?
                      Merci de votre concours.
                      1. Contributeur
                        Si tu veux que l'affichage soit automatique, dans ce cas là il te faudra une macro, je ne vois pas comment faire autrement.

                        Cordialement.
                    2. Salut,

                      Manuellement
                      Clic sur la touche Ctrl et en même temps touche point virgule
                      1. Contributeur
                        Bonjour,

                        la touche point virgule donne la date, la touche deux points donne l'heure.

                        Cordialement.