date et heure d'encodage

  • Initiateur de la discussion Initiateur de la discussion Jacques
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

Jacques

Guest
Bonjour,

J'aimerais encoder dans une colonne, de manière simple, la date et l'heure d'encodage. La fonction "maintenant" permet d'obtenir ce résultat mais il y a une mise à jour de toute la colonne à chaque encodage. Une solution ??

Amitiés.

Jacques
 
Bonjour Jacques

Le plus simple est pas macro, et aussi le plus fiable

Copie ce code, puis clique droit sur le bouton de l'onglet de la feuille, puis sur "visualiser le code", tu te trouves maintenant dans le VBA, tu colles le code ci-dessous

Option Explicit
Dim vAdresseCell

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Target, Range("A1:A65536")) Is Nothing Then: Exit Sub
Range(vAdresseCell).Offset(0, 1) = Time
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Intersect(Target, Range("A1:A65536")) Is Nothing Then: Exit Sub
vAdresseCell = ActiveCell.Address
End Sub

Il y a une autre méthode en formule avec l'option d'itération (valeur maxi à 1) des calculs d'Excel, et avec une formule de ce type =SI(ESTVIDE(A1);"";SI(NBCAR(B1)>0;B1;MAINTENANT()))

@+Jean-Marie
 
Désolé pour le double encodage de ma question.
Je suis un super débutant. Après avoir utilisé une de tes 2 méthodes, sur quelle touche dois-je pousser ou que dois-je encoder pour obtenir date et heure d'encodage.

Merci pour ton aide !

Jacques
 
Re...

Jacques, je ne sais pas si ce code est le plus approprié, mais voilà ce qu'il fait
Quand une valeur est saisie dans la cellule Axxxxx il place dans la cellule de droite l'heure système sans que l'on tape la formule.

Remplace dans ce code Time par Now

Si tu préfères, dans le cas d'un double clique sur une cellule de la colonne A

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
If Intersect(Target, Range("A1:A65536")) Is Nothing Then: Exit Sub
ActiveCell = Now
End Sub

@+Jean-Marie
 
Pour me permettre de réaliser le plus facilement possible mon projet consistant à minuter différentes tâches pour pouvoir évaluer le temps moyen (+ extrêmes et écarts type) pour les réaliser, voici ce que j'aimerais obtenir:

- colonne A, date et heure d'encodage par double click (ok selon ton script !)
- colonne B, le nom de la tâche (pas de problème !)
- colonne C, la date et heure de fin de tâche, par double click ou autre (HELP !!)
- colonne D, le temps écoulé en minutes pour réaliser la tâche. (HELP !!).

Merci pour ton aide.

jacques
 
Re...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
If Intersect(Target, Range("A1:A65536")) Is Nothing Then: Exit Sub
ActiveCell = Now

If Intersect(Target, Range("C1:C65536")) Is Nothing Then: Exit Sub
ActiveCell = Now
ActiveCell.offset(0,1)= ActiveCell-ActiveCel.offset(0,-2)
End Sub

End Sub

Il ne peut y avoir qu'une seule procèdure Worksheet_BeforeDoubleClick, par feuille de classeur, c'est aussi vrai pour les autres événements.

@+Jean-Marie
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
302
Retour