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 !

jeromeN95

XLDnaute Impliqué
Bonsoir, comment utiliser les commandes vba dans ce style :


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("C13:C200")) Is Nothing Then GoTo fin
ActiveCell = Now()
'format du double clique en HH:MM:SS
Cells(Target.Row, 3) = Format(Now, "hh:mm:ss")

'déplacer la cellule vers la droite aprés validation
Selection.End(xlToLeft).Select
fin:
End Sub
' clik droit = Heure dans colone C et P uniquement !
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("P13😛200")) Is Nothing Then GoTo fin
ActiveCell = Now()
'format du double clique en HH:MM:SS
Cells(Target.Row, 16) = Format(Now, "hh:mm:ss")

'déplacer la cellule vers la droite aprés validation
Selection.End(xlToLeft).Select
fin:
Cancel = True
End Sub


Mais en appuyant uniquement sur E pour l'heure d'entrée a la place du Double Click
Et S pour la soirtie a la place du click droit ...

svp???

Merci.
 
Re : Raccourcie E + S

Bonsoir Jerome, bonsoir le forum,

Essaie comme ça (si j'ai bien compris...) :
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'à l'édition dans une cellule
Dim pl1 As Range 'déclare la variable pl1 (PLage 1)
Dim pl2 As Range 'déclare la variable pl2 (PLage 2)
 
Set pl1 = Range("C13:C200") 'définit la plage 1
Set pl2 = Range("P13:P200") 'définit la plage 2
 
'condition 1 : si l'édition à lieu dans la plage pl1
If Not Application.Intersect(Target, pl1) Is Nothing Then
    'condition 2 : si l'édition est "e" ou "E'
    If UCase(Target.Value) = "E" Then
        Target.Value = Now 'place la date et heure
        Target.Value = Format(Now, "hh:mm:ss") 'met au format
        Target.Offset(0, 1).Select 'déplace vers la droite
    End If 'fin de la condition 2
End If 'fin de la condition 1
 
'condition 1 : si l'édition à lieu dans la plage pl2
If Not Application.Intersect(Target, pl2) Is Nothing Then
    'condition 2 : si l'édition est "s" ou "S'
    If UCase(Target.Value) = "S" Then
        Target.Value = Now 'place la date et heure
        Target.Value = Format(Now, "hh:mm:ss") 'met au format
        Target.Offset(0, 1).Select 'déplace vers la droite
    End If 'fin de la condition 2
End If 'fin de la condition 1
End Sub
 
Dernière édition:
- 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

Discussions similaires

Réponses
4
Affichages
243
Retour