Matrice statistiques football amateur
Bonjour
J'ai découvert cette méthode de statistiques pour footballeurs amateurs sur un site footballcoachvidéo outil-statistique-pour-vos-equipes-gestion-match
j'ai bidouillé une matrice pour ajouter les stats manuellement mais je souhaiterais automatiser avec des boucles, et là je suis totalement perdu.
J'ai mis les conditions de calculs et exemples dans le fichier joint en espérant que ce soit assez clair.
Je vous remercie par avance si vous pouviez me fournir le code qui va bien et pourrai ainsi le partager avec le concepteur de cette méthode
Je vous souhaite une très belle journée
Bonjour,
une proposition
pour simplifier l'encodage et le rendre plus rapide, j'ai limité les codes actions à une seule lettre (mais pas de problème pour fournir une version qui utiliserait tes codes initiaux)
E = engagement
B= but
C= tir cadré
N=tir non cadré
D= geste défensif
Bonjour,
merci à toi, mais du coup je ne vois pas le code VBA que tu as appliqué dans le fichier :)
pour que lorsque l'on rentre par exemple
| E5 |
| 679N7C |
| 4D |
| 697 |
cela se transcrive automatiquement (sans utilisation des boutons + en manuel) en
| +1 en C6 et +1 en D6 |
| +1 en F9 & +1 en C9 / +1 en C10 / +1 en C12 & + 1 en I12 / +1 en C10 & + & en K10 |
| +1 en G5 |
| +1 en F9 & +1 en C9 / +1 en C12 / +1 en C10 & + 1 en D10 |
merci
Bonne journée
Bonsoir,
la macro se trouve dans le module de la feuille feuil1 et se déclenche dès l'introduction d'une séquence en colonne B à partir de la ligne 26.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row < 26 Then Exit Sub
If Target.Count <> 1 Then Exit Sub
t = UCase(Target.Value)
'vérifie si séquence valide
serie = 0
For i = 1 To Len(t)
If serie = 0 Then
c = Mid(t, i, 1)
If c Like "[1-5]" Then
serie = 1
ElseIf c Like "[0,6-9]" Then
serie = 2
End If
ElseIf serie = 2 And c Like "[1-5]" Then
MsgBox "invalide"
Exit Sub
ElseIf serie = 1 And c Like "[0,6-9]" Then
MsgBox "invalide"
Exit Sub
End If
Next i
'séquence valide
Application.EnableEvents = False
i = 1
Do
c = Mid(t, i, 1)
Select Case c
Case "E" 'engagement
i = i + 1
j = joueur(t, i)
Cells(j, 3) = Cells(j, 3) + 1
Case "B" 'but
j = joueur(t, i - 1)
Cells(j, 10) = Cells(j, 10)
Cells(j, 13) = Cells(j, 13) + 1
Case "C" 'tir cadré
j = joueur(t, i - 1)
Cells(j, 10) = Cells(j, 10) + 1
Case "N" 'tir non cadré
j = joueur(t, i - 1)
Cells(j, 9) = Cells(j, 9) + 1
Case "D" 'geste défensif
j = joueur(t, i - 1)
Cells(j, 7) = Cells(j, 7) + 1
If i < Len(t) Then
If Mid(t, i + 1, 1) Like "#" Then Cells(j, 6) = Cells(j, 6) + 1
End If
Case 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ' joueur
j = joueur(t, i)
Cells(j, 3) = Cells(j, 3) + 1
If i = Len(t) Then Cells(j, 4) = Cells(j, 4) + 1
Case Else
MsgBox "caractère invalide " & c & " détecté"
End Select
i = i + 1
Loop Until i > Len(t)
Application.EnableEvents = True
End Sub
Function joueur(t, x) As Long
Dim j As Long
j = Mid(t, x, 1)
If j = 0 Then j = 10
If j < 6 Then j = j + 1 Else j = j + 3
joueur = j
End Function