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. 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.
  2. 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. 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. As tu une proposition de macro pour réaliser cette fonction et peux tu m'expliquer comment l'installer.
      cordialement
      1. bonjour,
        y-a-t-il quelqu'un pour trouver une réponse à mon problème ?
        Merci ....
        1. Merci de ton aide mike 31
          je test et je te tiens au courant
          cordialement
          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. 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. 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. 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. 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. 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. 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
                    2. 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