Date et heure automatique saisie cellule Excel
Résolu
CharlesDB
Messages postés
78
Date d'inscription
Statut
Membre
Dernière intervention
-
you -
you -
A voir également:
- Excel heure automatique avec mise à jour
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mise en forme conditionnelle excel - Guide
- Mise a jour chromecast - Accueil - Guide TV et vidéo
- Liste déroulante excel - Guide
10 réponses
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.
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.
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 ♂
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 ♂
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 :
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
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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)
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)
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
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
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
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
Grace au code de Mike-31 j'ai pu résoudre la moitié de mon problème, cependant j'aimerais bien que le résultat soit figé
Merci d'avance à vous tous
Très bonne journée
Que veux tu dire par "cependant j'aimerais bien que le résultat soit figé "
Cordialement
Mike-31
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
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