Bonjour à tous,
j'ai besoin d'un coup de main pour finaliser mon projet.
Il s'agit de la plage ("C5:C60") qui contient les rencontres aau format (equipeA vs. equipeB)
et la plage ("D5:60") qui contient les résultats au format (scoreA-scoreB).
Si toute la plage est remplie, il n y a aucun problème mais s'il y a une cellule de la plage qui est vide: j'ai ce message d'erreur (Erreur d'exécution "9").
je vous mets le code et les niveaux où ça bloc.
Merci d'avance.
j'ai besoin d'un coup de main pour finaliser mon projet.
Il s'agit de la plage ("C5:C60") qui contient les rencontres aau format (equipeA vs. equipeB)
et la plage ("D5:60") qui contient les résultats au format (scoreA-scoreB).
Si toute la plage est remplie, il n y a aucun problème mais s'il y a une cellule de la plage qui est vide: j'ai ce message d'erreur (Erreur d'exécution "9").
je vous mets le code et les niveaux où ça bloc.
Merci d'avance.
VB:
Sub classement()
Dim i As Integer
Dim j As Integer
Dim equipeA As String
Dim equipeB As String
Dim resultat As String
Dim scoreA As Integer
Dim scoreB As Integer
' Remise à zéro du tableau
Range("I5:Q12").Value = 0
' Boucle pour parcourir toutes les rencontres
For i = 5 To 60
' Récupération des noms des équipes et du résultat
equipeA = Split(Range("C" & i).Value, " vs. ")(0) '<=== si une seule cellule matchs (C) est vide
equipeB = Split(Range("C" & i).Value, " vs. ")(1)
resultat = Range("D" & i).Value
scoreA = Split(resultat, "-")(0) '<=== si une seule cellule scores (D) est vide
scoreB = Split(resultat, "-")(1)
' Boucle pour parcourir toutes les équipes
For j = 5 To 12
' Mise à jour des données pour l'équipe A
If Range("H" & j).Value = equipeA Then
Range("I" & j).Value = Range("I" & j).Value + 1
If scoreA > scoreB Then
Range("J" & j).Value = Range("J" & j).Value + 1
Range("L" & j).Value = Range("L" & j).Value + 2
ElseIf scoreA < scoreB Then
Range("K" & j).Value = Range("K" & j).Value + 1
If scoreA = 0 And scoreB = 20 Then
Range("L" & j).Value = Range("L" & j).Value + 0
Range("P" & j).Value = Range("P" & j).Value + 1
Else
Range("L" & j).Value = Range("L" & j).Value + 1
End If
End If
Range("M" & j).Value = Range("M" & j).Value + scoreA
Range("N" & j).Value = Range("N" & j).Value + scoreB
Range("O" & j).Value = (Range("M" & j).Value - Range("N" & j).Value)
Range("Q" & j).Value = (Range("M" & j).Value - Range("N" & j).Value) / Range("I" & j).Value
End If
' Mise à jour des données pour l'équipe B
If Range("H" & j).Value = equipeB Then
Range("I" & j).Value = Range("I" & j).Value + 1
If scoreB > scoreA Then
Range("J" & j).Value = Range("J" & j).Value + 1
Range("L" & j).Value = Range("L" & j).Value + 2
ElseIf scoreB < scoreA Then
Range("K" & j).Value = Range("K" & j).Value + 1
If scoreB = 0 And scoreA = 20 Then
Range("L" & j).Value = Range("L" & j).Value + 0
Range("P" & j).Value = Range("P" & j).Value + 1
Else
Range("L" & j).Value = Range("L" & j).Value + 1
End If
End If
Range("M" & j).Value = Range("M" & j).Value + scoreB
Range("N" & j).Value = Range("N" & j).Value + scoreA
Range("O" & j).Value = (Range("M" & j).Value - Range("N" & j).Value)
Range("Q" & j).Value = (Range("M" & j).Value - Range("N" & j).Value) / Range("I" & j).Value
End If
Next j
Next i
'Tri du classement
Range("L5:Q12").Sort Key1:=Range("L5:L12"), Order1:=xlDescending, _
key2:=Range("Q5:Q12"), order2:=xlDescending, Header:=xlNo
End Sub