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 SubPs: 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 ;-)