Dans 1 cellule, un masque de saisi pour entrer un chrono : 00'00'',00

Bonjour,

Savez-vous comment, dans une cellule, forcer une saisie selon un format précis et avec la casse suivante en (un chrono avec min, sec et centième) :

_ _ ' _ _ ", _ _ (bien sûr, en cliquant dans la cellule, je suis forcé d'entrer les 6 chiffres avec une limite de 60 pour les 2 premières paires)

Que je puisse faire un tri croissant après...

Par exemple dans la cellule "AE3"

J'en demande beaucoup, je sais :)

Merci

Bonne journée :-)))))

Bonjour,

En jetant un rapide coup d'œil, le format que vous avez saisi est correct, et le tri s'effectue normalement, vous n'êtes pas obligé de saisir les 6 chiffres, pas besoin de saisir les zéros non significatifs.

Cdlt

Oui Arturo83, le format est le bon mais je voudrais faire un masque de saisi car un utilisateur qui ne connait rien, ne sait pas quoi taper dedans.

C'est possible d'avoir _ _ ' _ _" , _ _ cette forme là dans une cellule pour qu'on ait plus qu'à renseigner les 6 chiffres ?

Ou une autre idée peut-être, si tu as ?

Merci

à +

ok, remplacez la macro par celle-ci:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Nouvelle, Ancienne, iR%, iC%, k%, RMax, Arr
    Dim x As Range
    Dim DerLig&
    Dim Chrono$, Chrono1$, Chrono2$, Chrono3$, Chrono4$, Chrono5$
    Dim Chrono6$, Chrono7$, Chrono8$, Chrono9$, Chrono10$, Plage_Chrono$
    If Target.Count > 1 Then GoTo Sortie

    On Error GoTo Sortie
    Application.EnableEvents = False  ' on arrête la surveillance évènementielle

    DerLig = Range("A" & Rows.Count).End(xlUp).Row
    'Chrono1 = "J3:J" & DerLig 'Pompe
    'Chrono2 = "O3:O" & DerLig 'Traction
    'Chrono3 = "U3:U" & DerLig 'Gainage
    'chrono4 = "Z3:Z" & DerLig 'Chaise
    Chrono5 = "AE3:AE" & DerLig 'Rameur 500m
    Chrono6 = "AJ3:AJ" & DerLig 'Rameur 2000m
    'Chrono7 = "AO3:AO" & DerLig 'Course 200m
    'Chrono8 = "AT3:AT" & DerLig 'Course 5000m
    'Chrono9 = "AY3:AY" & DerLig 'Course tapis 3000m
    'Chrono10 = "BD3:BD" & DerLig 'Luc-léger
    'Plage_Chrono = Chrono1 & "," & Chrono2 & "," & Chrono3 & "," & Chrono4 & "," & _
        Chrono5 & "," & Chrono6 & "," & Chrono7 & "," & Chrono8 & "," & Chrono9 & "," & Chrono10
    Plage_Chrono = Chrono5 & "," & Chrono6
    If Not Intersect(Target, Range(Plage_Chrono)) Is Nothing Then
Saisie_Chrono:
        Chrono = InputBox("Veuillez saisir le temps sous la forme ""mm:ss,00""")
        Pos2Pts = InStr(1, Chrono, ":", 1)
        PosVirg = InStr(1, Chrono, ",", 1)
        If Pos2Pts = 0 Or PosVirg = 0 Then
            MsgBox "Format non conforme veuillez saisir:  ""mm:ss,00"""
            GoTo Saisie_Chrono
        End If
        Target.Value = Chrono
        GoTo Sortie
    ElseIf Target.Address = "$C$1" Then
        If Target.Value <> "" Then
            nom = Target.Value & "*"
            If Application.WorksheetFunction.CountIf(Range("A2:BM" & DerLig), nom) > 0 Then
                ActiveSheet.Range("A2:BM" & DerLig).AutoFilter Field:=3, Criteria1:="=" & nom
            Else
                Rows("3:3").Insert Shift:=xlDown
                ActiveSheet.Range("A2:BM" & DerLig).AutoFilter Field:=3
                Rows("3:3").EntireRow.AutoFit
                Range("A4:BM4").Copy
                Range("A3").PasteSpecial Paste:=xlPasteFormats
            End If
            GoTo Sortie
        End If
    ElseIf Target.CountLarge > 1 Then GoTo Sortie
    Arr = [RefCol].Value
    RMax = [CTot].End(4).Row
    iR = Target.Row
    'La macro s'exécute sur les lignes 3 à 70
    If iR < 3 Or iR > RMax Then Application.EnableEvents = False
        iC = Target.Column
        For k = 1 To UBound(Arr, 1)
            If iC = Arr(k, 1) Then
                ' on arrête la mise à jour de l'écran
                Application.ScreenUpdating = False
                'on met en mémoire la valeur de la cellule
                Nouvelle = Target.Value
                ' on applique un "UNDO" afin de connaitre la valeur de la cellule avant changement
                Application.Undo
                ' on met en mémoire l'ancienne valeur
                Ancienne = Target.Value
                ' on compare les deux valeurs
                ' si elles ne sont pas identiques alors il y a eu de changement de valeur on modifie la date
            End If
            If Nouvelle <> Ancienne Then
                Target.Value = Nouvelle
                Cells(iR, Arr(k, 2)) = Date
                Cells(iR, Arr(k, 2)).NumberFormat = "dd/mm/yy"
                Exit For
            End If
        Next
    End If

Sortie:
    Application.EnableEvents = True  ' on remet en marche la surveillance évènementielle
End Sub

Ps: la notation des temps avec ' pour minutes et " pour secondes est réservé pour les mesures d'angles, j'ai conservé la notation mm:ss,00

Visiblement seules les colonnes AE et AJ sont concernées par cette présentation, mais la macro est prévue pour les autres chronos, il suffira d'enlever les apostrophes en début de chaque ligne concernée.

Cdlt

MErci beaucoup Arturo83 mais je vais peut-être attendre avant de copier cette macro, que tu vois ce que je t'ai écrit dans l'autre sujet pour la recherche des NOMS ;-)

Rechercher des sujets similaires à "masque saisi entrer chrono"