Je n'ai jamais écrit de code auparavant, mais pour un projet, j'analyse des statistiques de basket-ball fantastiques afin de déterminer quelles équipes gagneraient en affrontements. Il y a neuf catégories de statistiques, 12 équipes au total, et dans un match entre les équipes 1 et 2, quelle que soit l'équipe est meilleure dans une catégorie obtient un 1, et l'autre obtient un 0. Les cravates donnent chaque .5. Les totaux sont additionnés, et le gagnant est l'équipe avec plus de points.Boucles VBA en boucle avec des boucles imbriquées
J'ai écrit une macro qui compare l'équipe 1 à toutes les autres pour chaque catégorie et leur donne un 1 ou un 0 pour chacun en conséquence. J'ai du mal à écrire une boucle qui commence alors avec l'équipe 2 et la compare à toutes les autres. J'ai essayé de placer une boucle autour des deux autres, mais je n'arrive pas à la décaler correctement ou à la faire fonctionner. Toute aide serait appréciée. Mon code est ci-dessous. Merci!
Sub WhoWins()
Dim teamAcounter As Integer
Dim teamBcounter As Integer
Dim teamAanswercounter As Integer
Dim teamBanswercounter As Integer
'these counters keep track of where we are in the stats and answers
Dim Number1 As Single
Dim Number2 As Single
'these are the numbers currently being used to determine a win
Dim answer1 As Single
Dim answer2 As Single
Dim split As Single
answer1 = 1
split = 0.5
answer2 = 0
'these are used to store a winning/losing/draw value in answers
teamAanswercounter = teamBcounter + 16
teamBanswercounter = teamAanswercounter + 1
Dim columncounter As Integer
teamAcounter = 3
For columncounter = 2 to 10
For teamBcounter = 4 To 14
Number1 = Cells(teamAcounter, columncounter).Value
Number2 = Cells(teamBcounter, columncounter).Value
If Number1 > Number2 Then
Cells(teamAanswercounter, columncounter).Value = 1 'answer1
Cells(teamBanswercounter, columncounter).Value = 0 'answer2
ElseIf Number2 > Number1 Then
Cells(teamAanswercounter, columncounter).Value = 0 'answer2
Cells(teamBanswercounter, columncounter).Value = 1 'answer1
ElseIf Number1 = Number2 Then
Cells(teamAanswercounter, columncounter).Value = split
Cells(teamBanswercounter, columncounter).Value = split
End If
teamAanswercounter = teamAanswercounter + 3
teamBanswercounter = teamAanswercounter + 1
Next teamBcounter
'teamBcounter = 4
'teamAcounter = 3
teamAanswercounter = teamBcounter + 1
teamBanswercounter = teamAanswercounter + 1
Next columncounter
End Sub
Intéressant projet! Pouvez-vous poster un extrait de la feuille de calcul qui contient toutes les statistiques de catégorie d'équipe? Ce serait vraiment utile pour comprendre votre script –
, juste téléchargé! – user2589342
Si vous croyez que les réponses sont utiles, nous vous encourageons à les modifier. Si une réponse a résolu votre problème, veuillez le marquer comme accepté. C'est la façon de dire merci à SO. :) – Manhattan