code pour saisie heures 1000 =10h00 avec un range

Regueiro

XLDnaute Impliqué
Bonsoir le Forum
Ce code me permets de saisir des heures rapidement.
Par exemple :
1000 = 10h00
0015 = 00h15
J'aimerais le restreindre à plusieurs zone de ma feuille.
Par exemple F11:K18 et M11:R18
Voici le code :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Compteur As Integer
'Dim cell As Range 'xxxxxxxx
    Application.ScreenUpdating = False
    Application.EnableEvents = False


If Target.Count = 1 And IsNumeric(Target.Value) Then
   'For Each cell In Range("F11:K18") 'xxxxxxx

    If InStr(1, Target.Value, ":", 1) = 0 And Not (Target.Value = "") Then
        Compteur = InStr(1, Target.NumberFormat, ":", 1)
        If Compteur > 0 And Target.Value = (Target.Value \ 1) Then
            Compteur = InStr(Compteur + 1, Target.NumberFormat, ":", 1)
            If Compteur > 0 Then
                Select Case Len(Target.Value)
                    Case Is < 3
                        Target.Value = TimeSerial(0, 0, Target.Value)
                    Case Is < 5
                        Target.Value = TimeSerial(0, Left(Right(Target.Value, 4), 2), Right(Target.Value, 2))
                    Case Else
                        Target.Value = TimeSerial(Left(Target.Value, Len(Target.Value) - 4), Left(Right(Target.Value, 4), 2), Right(Target.Value, 2))
                End Select
            Else
                Select Case Len(Target.Value)
                    Case Is < 3
                        Target.Value = TimeSerial(0, Target.Value, 0)
                    Case Else
                        Target.Value = TimeSerial(Left(Target.Value, Len(Target.Value) - 2), Right(Target.Value, 2), 0)
                End Select
            End If
        End If
    End If
    Next    'xxxxxxxx
'End If
    Application.ScreenUpdating = True
    Application.EnableEvents = True

End Sub
Merci de votre Aide.
A+
 

Victor21

XLDnaute Barbatruc
Re : code pour saisie heures 1000 =10h00 avec un range

Bonsoir, Regueiro, GCE :)

Pour ma part, j'utilise le correcteur orthographique pour saisir les heures (Outils, Options, Orthographe, Options de correction automatique, Remplacer ".." par ":" - sans les guillemets :) )
Et pour 10:00, je saisis sur le pavé numérique 10..
pour 10:05, je saisis 10..05
Et ça ne change pas la valeur saisie !
 

Gareth

XLDnaute Impliqué
Re : code pour saisie heures 1000 =10h00 avec un range

Bonsoir,

Dans le fichier joint un exemple qui applique les modifications sur les zones demandées.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Set Var = Application.Intersect(Target, Range("F11:K18,M11:R18"))
If Target.Columns.Count = 1 And Target.Rows.Count = 1 Then
    If Not Var Is Nothing And IsNumeric(Target.Value) Then
        Target.Value = Left(Format(Target, "0000"), 2) & ":" & Right(Format(Target, "0000"), 2)
    End If
End If
Application.EnableEvents = True
End Sub
 

Pièces jointes

  • Classeur1.xls
    32 KB · Affichages: 59
  • Classeur1.xls
    32 KB · Affichages: 53
  • Classeur1.xls
    32 KB · Affichages: 63

Regueiro

XLDnaute Impliqué
Re : code pour saisie heures 1000 =10h00 avec un range

Bonsoir merci pour vos réponses.
Mais ?
Je saisie en A1 1000 = 10:00 OK Format person = 00":"00
en A2 1215 = 12:15 OK
en A3 = A2-A1 = 02:15 = 2 heures et 15 minutes
En A4 = 60.00 de l'heure
En A5 = (A3 x A4)/100 = 129.00 au lieu de 135.00
Merci de votre aide
 

Discussions similaires

Réponses
1
Affichages
234

Statistiques des forums

Discussions
312 103
Messages
2 085 313
Membres
102 860
dernier inscrit
fredo67