date et heure d'encodage

  • Initiateur de la discussion Jacques
  • Date de début
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
 
J

Jean-Marie

Guest
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
 
J

Jacques

Guest
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
 
J

Jean-Marie

Guest
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
 
J

Jacques

Guest
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
 
J

Jean-Marie

Guest
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
 

Discussions similaires

Statistiques des forums

Discussions
312 764
Messages
2 091 862
Membres
105 082
dernier inscrit
saragestion