Krist-Rider
XLDnaute Nouveau
Bonjour,
J'aurais besoin d'un conseil éclairé. Dans le fichier en PJ je gère des courses (cyclo-cross, cross-country ...). Le fichier permet de lancer un chronométre au départ de l'épreuve, puis par la saisie du dossard lors du passage du coureur de gérer le nombre de tours accomplis (colonnes B, K, T, etc) et en fin d'épreuve (colonne DH) le scratch de l'arrivée. Lors le la saisie du dossard en DH le temps s'inscrit dans la colonne DS.
En fait je souhaiterais à chaque tour avoir les temps intermédiaires qui s'inscrivent de la même manière dans les colonnes G, P, AH etc. à la saisie du numéro de dossard.
Pour l'arrivée de l'épreuve, cela fonctionne avec le code VBA suivant :
Private Sub Worksheet_Change(ByVal Target As Range)
'rien ne se passe en dehors d'une saisie dans la colonne 112
If Target.Column <> 112 Then Exit Sub
'rien ne se passe si plusieurs cellules sont modifiées d'un coup
If Target.Cells.Count > 1 Then Exit Sub
If Target.Row < 1 Then Exit Sub
'donne la valeur du chrono à chaque saisie dans la colonne 112. Ne change pas une valeur de chrono déjà inscrite
If Target.Offset(0, 11) = 0 Then Target.Offset(0, 11) = Range("DQ3")
End Sub
Par contre je ne sais pas comment faire pour que cela fonctionne à chaque tour.
Merci d'avance pour votre aide, je joins le fichier d'exemple
PS. Je ne suis pas un Pro du VBA, mes codes sont certainement perfectibles !!!
J'aurais besoin d'un conseil éclairé. Dans le fichier en PJ je gère des courses (cyclo-cross, cross-country ...). Le fichier permet de lancer un chronométre au départ de l'épreuve, puis par la saisie du dossard lors du passage du coureur de gérer le nombre de tours accomplis (colonnes B, K, T, etc) et en fin d'épreuve (colonne DH) le scratch de l'arrivée. Lors le la saisie du dossard en DH le temps s'inscrit dans la colonne DS.
En fait je souhaiterais à chaque tour avoir les temps intermédiaires qui s'inscrivent de la même manière dans les colonnes G, P, AH etc. à la saisie du numéro de dossard.
Pour l'arrivée de l'épreuve, cela fonctionne avec le code VBA suivant :
Private Sub Worksheet_Change(ByVal Target As Range)
'rien ne se passe en dehors d'une saisie dans la colonne 112
If Target.Column <> 112 Then Exit Sub
'rien ne se passe si plusieurs cellules sont modifiées d'un coup
If Target.Cells.Count > 1 Then Exit Sub
If Target.Row < 1 Then Exit Sub
'donne la valeur du chrono à chaque saisie dans la colonne 112. Ne change pas une valeur de chrono déjà inscrite
If Target.Offset(0, 11) = 0 Then Target.Offset(0, 11) = Range("DQ3")
End Sub
Par contre je ne sais pas comment faire pour que cela fonctionne à chaque tour.
Merci d'avance pour votre aide, je joins le fichier d'exemple
PS. Je ne suis pas un Pro du VBA, mes codes sont certainement perfectibles !!!