Voici un extrait de mon code
Code : Tout sélectionner
[spoiler=]#include <Array.au3>
#include <Array2D.au3>
Dim $Tab[6][5], $Tri[22]
For $i = 0 to 5
For $j = 0 to 4
$Tab[$i][$j]=""
Next
next
$Tab[0][0]="A"
$Tab[1][0]="B"
$Tab[2][0]="C"
$Tab[3][0]="D"
$Tab[4][0]="E"
$Tab[5][0]="F"
$Tab[0][2]= 0
$Tab[1][1]= 4
$Tab[1][2]= 0
$Tab[2][1]= 1
$Tab[2][2]= 1
$Tab[3][1]= 0
$Tab[4][1]= 11
$Tab[4][2]= 11
$Tab[5][1]= 1
_ArrayDisplay($Tab)
For $i = 0 to 5 ; on balaie les 6 personnes
$Itot = 0
$i_part = 0
For $j = 1 to 2
Switch $Tab[$i][$j]
Case ""
$Tab[$i][$j] = -99999 ; la personne n'a pas de note, donc je met valeur fictive -99999
Case 0
$i_part+=1
$Itot = $Itot + $Tab[$i][$j]
MsgBox(0,"","VU") ; on ne passe JAMAIS ici, pourquoi ?
Case else
$i_part+=1
$Itot = $Itot + $Tab[$i][$j]
EndSwitch
$Tri[$j-1] = $Tab[$i][$j] ; on stocke les différentes notes
Next
$Tab[$i][3] = $Itot
; on trie Note + fort au - fort
_ArraySort($Tri,1,0,0)
$TotalPT = 0
For $k13 = 0 to 1 ; Pour chaque personne, on fait le total de ses X notes
if $Tri[$k13] = -99999 then $Tri[$k13] = 0
$TotalPT = $TotalPT + $Tri[$k13]
Next
if $i_part = 2 Then ; si on a le compte de participations, on met le cumul dans 4eme colonne
$Repere = 1
$Tab[$i][4] = $TotalPT
else
$RepereCol4 = 1
EndIf
For $j = 1 to 2
if $Tab[$i][$j] = -99999 then $Tab[$i][$j] = ""
Next
Next
if $Repere = 1 then
_ArraySort($Tab,1,0,0,4) ; on trie en montant du debut à la fin sur la colonne 4
if $RepereCol4 = 1 Then
For $k = 0 to 5
if $Tab[$k][4] = "" Then
_ArraySort($Tab,0,$k,2,0) ; on trie par ordre alpha sur les noms pour ceux qui n'ont pas 2 notes
ExitLoop
EndIf
Next
EndIf
Else
_ArraySort($Tab,0,1,0,0)
EndIf
; le tableau final est faux car B ayant 2 notes l'une à 0 et l'autre à 4 devrait être second !
_ArrayDisplay($Tab, " trié")
[/spoiler]La personne a une note de 0 à x ou une valeur nulle (pas de note)
Mon souci est qu'AutoIt ne me display jamais mon "VU" car il ne teste pas le zéro
A la fin, je trie mon tableau de telle sorte que ceux qui ont 2 notes soient placés en tête et je devrais voir E (11 + 11) avec 22 points suivi de B (4 + 0) et C (1+1)
Où est mon erreur ?
Merci d'avance



