Double point du Format horaire

  • Initiateur de la discussion Initiateur de la discussion riton00
  • 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 !

riton00

XLDnaute Impliqué
Bonjour à tous

P'tite question

Serait-il possible qu’en tapant dans une cellule les chiffres 1234 d’obtenir 12:34 (format horaire) sans taper le double point
Puisque lorsque je configure ma cellule par hh:mm il faut que je tape le double point pour obtenir 12:34 ce que j'aurais voulu éviter.

Merci
Cordialement
 
Re : Double point du Format horaire

Bonsoir Riton, bonsoir à tous,

Une solution simple et pratique est d'ajouter dans les corrections automatiques (Outils - Corrections automatiques) le remplacement de ".." par ":", cela permet de taper facilement sur un clavier numérique 12..34 et d'obtenir 12:34.

@+

Gael
 
Re : Double point du Format horaire

Bonjour Riton, Gaël,
Une macro d'après Wilfried42 (saisie en A1, plage à adapter):

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'aide saisie heures
If Not Intersect(Target, Range("A1")) Is Nothing Then [COLOR="SeaGreen"]'plage à adapter[/COLOR]

If Not IsNumeric(Target) Or (Target.Value > 24 Or Target.Value < 0) Then
MsgBox " Vous devez saisir les heures uniquement avec le clavier numérique : " & vbCr & vbCr & _
"Exemples :" & vbCr & _
"                        8 pour 08:00" & vbCr & vbCr & _
"                        12.45 pour 12:45" & vbCr & vbCr & _
"Le nombre saisi doit être compris entre 0 et 24"

Else
    
     Dim tps As Single
    tps = Target.Value * 100
    
        Application.EnableEvents = Not Application.EnableEvents
        Target = CDate(CStr(Int(tps / 100)) & ":" & CStr(tps Mod 100) & ":00")
        Application.EnableEvents = Not Application.EnableEvents
End If
End If
End Sub

Permet de saisir 12 ou 12. ou 12.00 pour obtenir 12:00
13.45 pour 13:45
etc...

Cordialement,
Guiv
 
Re : Double point du Format horaire

Bonjour riton, tous

En voyant ce format si simple, je l'ai essayé dans un tableau dans lequel je calcul des durées
Mais effectivement, il ne permet pas de faire de calcul sur les heures ainsi saisies.
Ou en tout cas, je n'ai pas trouvé de solution pour le faire.
Donc je suis revenue à ma macro initiale qui ressemble à celle que propose Guiv en début de post 😉
 
Re : Double point du Format horaire

A Bambi et à tous les autres spécialistes

J'ai testé la macro de Guiv elle fonctionne bien mise à part qu'il faut tout de même mettre un point entre les heures lorsqu'il y a des minutes à gèrer. Aurais-tu par hasard une autre macro permettant de taper que des chiffres, exemple taper que 1925 pour 19:25

Cordialement

Riton00
 
Re : Double point du Format horaire

Bonjour riton
Bonjour le forum

Bien que pas du tout spécialiste, voici la macro que j'utilise à adpater à tes cellules 😉

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
        
    Dim TimeStr As String
    
    If Target.Count > 1 Or Application.CountA(Target) = 0 Then Exit Sub
    If Not Intersect(Target, Range("D3, F3, D16, F16, D29, F29, D42, F42, D55, F55, M3, O3, M16, O16, M29, O29, M42, O42, M55, O55")) Is Nothing Then
        If Not Intersect(Target, Range("D3, F3, D16, F16, D29, F29, D42, F42, D55, F55, M3, O3, M16, O16, M29, O29, M42, O42, M55, O55")) Is Nothing Then On Error GoTo EndMacro
        
       
        
        If Target.Cells.Count > 1 Then Exit Sub
        If Target.Value = "" Then Exit Sub
        
        Application.EnableEvents = False
        
        With Target
            If .HasFormula = False Then
                Select Case Len(.Value)
                    Case 1 ' e.g., 1 = 00:01 AM
                        TimeStr = "00:0" & .Value
                    Case 2 ' e.g., 12 = 00:12 AM
                        TimeStr = "00:" & .Value
                    Case 3 ' e.g., 735 = 7:35 AM
                        TimeStr = Left(.Value, 1) & ":" & _
                        Right(.Value, 2)
                    Case 4 ' e.g., 1234 = 12:34
                        TimeStr = Left(.Value, 2) & ":" & _
                        Right(.Value, 2)
                    Case 5 ' e.g., 12345 = 1:23:45 NOT 12:03:45
                        TimeStr = Left(.Value, 1) & ":" & _
                        Mid(.Value, 2, 2) & ":" & Right(.Value, 2)
                    Case 6 ' e.g., 123456 = 12:34:56
                        TimeStr = Left(.Value, 2) & ":" & _
                        Mid(.Value, 3, 2) & ":" & Right(.Value, 2)
                    Case Else
                        Err.Raise 0
                End Select
        .Value = TimeValue(TimeStr)
        End If
    End With

    Application.EnableEvents = True
    Exit Sub

EndMacro:
    MsgBox "You did not enter a valid time"
    Application.EnableEvents = True
    
    End If
    
End Sub
 
Re : Double point du Format horaire

Bonjour Bambi, jp14, le forum

Merci Bambi et à jp14 pour vous être décarcassé, mais je vais opter pour la macro de Bambi, qui me satisfait tout à fait, je vais juste l'adapter à mon fichier. 😉

Cordialement

Riton00
 
- 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

S
Réponses
10
Affichages
13 K
brigitte
B
Retour