Menu

Date et heure automatique saisie cellule Excel [Résolu/Fermé]

Messages postés
78
Date d'inscription
samedi 20 février 2010
Statut
Membre
Dernière intervention
9 mars 2015
- - Dernière réponse :  you - 9 mars 2016 à 09:11
Bonjour,

Je souhaite obtenir de l'aide pour mettre en place si cela est possible un système permettant d'indiquer l'heure et la date automatiquement lorsque je saisi des données dans une cellule.

Par exemple, j'écris "100" dans ma cellule A1 et je souhaite que dans ma cellule B1 il soit affiché automatiquement "20h34 - 15/02/2013" ce qui correspond en fait au format suivant : "hh mm dd mm yyyy".

Cordialement,
CharlesDB

Afficher la suite 

10 réponses

Meilleure réponse
Messages postés
16911
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 juin 2019
3503
2
Merci
Salut,

Tu aurais aussi vite fait de faire un simple clic sur deux touches Ctrl et point virgule

avec la fonction Maintenent la date changera tous les jours et avec un code VBA le fait de changer la donnée en A entrainera automatiquement le changement de la date en B
si c'est que tu cherches, clic droit sur l'onglet de ta feuille et colle ce code

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, [A1:A100]) Is Nothing Then
Target(1, 2) = Now
End If
End Sub

si le code se limite à cette simple saisie tu peux écourter le code comme ceci

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, [A1:A100]) Is Nothing Then Target(1, 2) = Now
End Sub

il est possible de figer la date en B pour éviter tout changement après postérieur et obliger la modification manuelle mais on verra plus tard
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.

Dire « Merci » 2

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 45945 internautes nous ont dit merci ce mois-ci

Mike-31
Messages postés
16911
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 juin 2019
3503 -
Bonjour,

Que veux tu dire par "cependant j'aimerais bien que le résultat soit figé "
Cordialement
Mike-31
> Mike-31
Messages postés
16911
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 juin 2019
-
merci
khaoulasai
Messages postés
1
Date d'inscription
mercredi 13 août 2014
Statut
Membre
Dernière intervention
13 août 2014
-
bonjour
M. mike-31 je tiens a vous remercie pour le code ... je veux savoir si je peux figé le résultat par exp : quand je fais entré une valeur dans A1 j'aurai "13/08/2014 09:56:17 " dans B1 , si après une heurs je ferai des modifications dans la cellule A1 la cellule B1 reçoit "13/08/2014 10:56:17 " alors que moi je veux gardé la 1ère date ... mercii
Mike-31
Messages postés
16911
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 juin 2019
3503 -
Salut Khoulasai,

je découvre ta demande en rentrant de vacance, essaye ce code

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, [A1:A100]) Is Nothing Then
If Target(1, 2) = "" Then Target(1, 2) = Now
End If
End Sub
> Mike-31
Messages postés
16911
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 juin 2019
-
salut Mike-31 j'ai le même problème mais je sais pas comment m'y prendre pour l'exécuter dans la cellule Excel comment faire?
Messages postés
49173
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
25 juin 2019
10104
1
Merci
Salut.

La fonction MAINTENANT() affiche la date et l'heure instantanées, mais se met à jour (et à l'heure) chaque fois qu'on fait la moindre modification dans le fichier ...
La formule est =SI(A1="";"";MAINTENANT()) mais il faudrait faire un Copier/Collage spécial/Valeur pour fixer le résultat, ce qui devient vite fastidieux.

Mais ne désespère pas ; je suis à peu près certain qu'un autre habitué du forum te donnera bientôt la bonne méthode.

Cordialement.

C'est bien, la retraite ! Surtout aux Antilles ... :-)
☻ Raymond ♂
Messages postés
78
Date d'inscription
samedi 20 février 2010
Statut
Membre
Dernière intervention
9 mars 2015
16
1
Merci
Tout d'abord merci à tous pour vos réponses, ça me fait plaisir de voir que des personnes soient intéressés et m'aident pour parvenir à faire face à ce problème.


J'ai choisi le premier code de Mike-31 qui est le suivant :
Private Sub Worksheet_Change(ByVal Target As Range) 
On Error Resume Next 
If Not Intersect(Target, [A1:A100]) Is Nothing Then 
Target(1, 2) = Now 
End If 
End Sub 


J'ai fait plusieurs essais et j'ai trouvé que c'était celui qui me convenait le mieux.

Un grand merci à vous encore, et je vous recontacte en cas de besoin !

Cordialement,
CharlesDB
Messages postés
2
Date d'inscription
jeudi 10 octobre 2013
Statut
Membre
Dernière intervention
11 octobre 2013
1
1
Merci
Bonjour,

Je me permets de vous contacter car j'ai un petit souci avec un calcul de date.

En cellule B16 : 10/10/2013
En cellule C16 : 10/10/2013
J'ai comme formule : =somme(C16-B16)

Avec cette formule, le résultat est 0 alors que la personne a été de passage durant ce jour là en notre établissement.
Comment dois-je faire ou quelle formule dois-je employer pour que le résultat soit 1 et pas 0

Par contre avec la formule =somme(C16-B16+1), le résultat est 1 évidemment mais lorsque mes cellules B16 et C16 sont vides, le résultat indiqué est toujours 1 alors qu'il devrait mettre 0...

Bref je tourne en rond...
Merci pour votre aide.
Jérôme
Messages postés
16911
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 juin 2019
3503
0
Merci
Re,

Dans ce cas pourquoi ne pas avoir retenu celui le deuxième plus court qui fait la même chose

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, [A1:A100]) Is Nothing Then Target(1, 2) = Now
End Sub

et pourquoi ne pas pousser la réflexion plus loin et protéger la saisie de sorte à ne pas modifier cette dernière par erreur
CharlesDB
Messages postés
78
Date d'inscription
samedi 20 février 2010
Statut
Membre
Dernière intervention
9 mars 2015
16 -
Bonjour,
Je m'excuse pour mon temps de réponse.

En effet, votre proposition m'intéresse, protéger la saisie de donner peut être un élément intéressant pour moi.

Je ne vous répondrai pas avant une semaine, je n'ai pas accès à internet régulièrement.

Très cordialement,
CharlesDB
Messages postés
16911
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 juin 2019
3503
0
Merci
Re,

On verra ça dans une dizaine de jours, ski oblige si je ne me casse pas une patte
CharlesDB
Messages postés
78
Date d'inscription
samedi 20 février 2010
Statut
Membre
Dernière intervention
9 mars 2015
16 -
Pareil :)
Messages postés
16911
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 juin 2019
3503
0
Merci
Re Ok à dans une semaine, ou vas tu faire du ski
CharlesDB
Messages postés
78
Date d'inscription
samedi 20 février 2010
Statut
Membre
Dernière intervention
9 mars 2015
16 -
J'étais sur Avoriaz, beau temps toute la semaine et neige top au début mais fondue a la fin du séjour !
Messages postés
16911
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 juin 2019
3503
0
Merci
Bonjour,

Et oui c'est le principe des intervalles+1
mais pour répondre à ta question que tu aurais due poser dans ta propre discussion

=SI(NBVAL(B16:C16)<2;"";C16-B16+1)
ou encore
=SI(NBVAL(B16:C16)<2;"";SOMME(C16-B16)+1)
Messages postés
2
Date d'inscription
jeudi 10 octobre 2013
Statut
Membre
Dernière intervention
11 octobre 2013
1
0
Merci
Merci bcp pour votre aide ! Ca marche :)

Je suis comblé ! ;)

Excellent WE.

Jérôme
Messages postés
24116
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
25 juin 2019
4640
-1
Merci
Bonjour

pour un champ de A1 à A1000

clic droit sur le nom de l'onglet

Dans le menu choisir:"visualiser le code"

coller ce code et ajuster les champs selon besoins

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'désignation de la ligne sélectionnée
Dim Rw As Long
Rw = Target.Row
'Limites de la zone activée
If Target.Column = 1 And Target.Row > 1 And Target.Row < 1000 Then
'Sélection et valeur cellule résultat
Range("B" & Rw).Select
ActiveCell.FormulaR1C1 = Now
End If
End Sub


crdlmnt