1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198
| Dim f1 As Worksheet, f2 As Worksheet
Dim i As Long, j As Long
Dim Col_Rep As Long, Col_Moy As Long
Sub Afrique_et_MO()
Application.ScreenUpdating = False
Set f1 = Sheets("Afrique et MO")
Set f2 = Sheets("Calculs")
f2.Select
'répartitions des conseillers
For i = 4 To 251 Step 13
If f1.Range("H" & i + 10).Value <> 0 Then
f1.Range("J" & i & ":L" & i + 9 & ", N" & i & ":O" & i + 9 & ", Q" & i & ":R" & i + 9 & ", T" & i & ":U" & i + 9 & ", W" & i & ":X" & i + 9 & ", Z" & i & ":AA" & i + 9 & ",AC" & i & ":AD" & i + 9 & ", AF" & i & ":AG" & i + 9 & ", AI" & i & ":AJ" & i + 9).ClearContents
f2.Range("H5").Value = f1.Range("I" & i + 1).Value 'Nombre de sièges
f2.Range("G4:G13").Value = f1.Range("H" & i & ":H" & i + 9).Value
Col_Rep = 10
Col_Moy = 11
Repartition_Sieges
End If
Next i
'répartitions des délégués
For i = 4 To 251 Step 13
If f1.Range("H" & i + 10).Value <> 0 Then
f1.Range("AN" & i & ":AP" & i + 9 & ", AR" & i & ":AS" & i + 9 & ", AU" & i & ":AV" & i + 9 & ", AX" & i & ":AY" & i + 9 & ", BA" & i & ":BB" & i + 9 & ", BD" & i & ":BE" & i + 9 & ",BG" & i & ":BH" & i + 9 & ", BJ" & i & ":BK" & i + 9 & ", BM" & i & ":BN" & i + 9).ClearContents
f2.Range("H5").Value = f1.Range("AM" & i + 1).Value 'Nombre de sièges
f2.Range("G4:G13").Value = f1.Range("H" & i & ":H" & i + 9).Value
Col_Rep = 40
Col_Moy = 41
Repartition_Sieges
End If
Next i
f1.Select
End Sub
Sub Amérique_du_Sud()
Application.ScreenUpdating = False
Set f1 = Sheets("Amérique du Sud")
Set f2 = Sheets("Calculs")
f2.Select
'répartitions des conseillers
For i = 4 To 251 Step 13
If f1.Range("H" & i + 10).Value <> 0 Then
f1.Range("J" & i & ":L" & i + 9 & ", N" & i & ":O" & i + 9 & ", Q" & i & ":R" & i + 9 & ", T" & i & ":U" & i + 9 & ", W" & i & ":X" & i + 9 & ", Z" & i & ":AA" & i + 9 & ",AC" & i & ":AD" & i + 9 & ", AF" & i & ":AG" & i + 9 & ", AI" & i & ":AJ" & i + 9).ClearContents
f2.Range("H5").Value = f1.Range("I" & i + 1).Value 'Nombre de sièges
f2.Range("G4:G13").Value = f1.Range("H" & i & ":H" & i + 9).Value
Col_Rep = 10
Col_Moy = 11
Repartition_Sieges
End If
Next i
'répartitions des délégués
For i = 4 To 251 Step 13
If f1.Range("H" & i + 10).Value <> 0 Then
f1.Range("AN" & i & ":AP" & i + 9 & ", AR" & i & ":AS" & i + 9 & ", AU" & i & ":AV" & i + 9 & ", AX" & i & ":AY" & i + 9 & ", BA" & i & ":BB" & i + 9 & ", BD" & i & ":BE" & i + 9 & ",BG" & i & ":BH" & i + 9 & ", BJ" & i & ":BK" & i + 9 & ", BM" & i & ":BN" & i + 9).ClearContents
f2.Range("H5").Value = f1.Range("AM" & i + 1).Value 'Nombre de sièges
f2.Range("G4:G13").Value = f1.Range("H" & i & ":H" & i + 9).Value
Col_Rep = 40
Col_Moy = 41
Repartition_Sieges
End If
Next i
f1.Select
End Sub
Sub Amérique_du_Nord()
Application.ScreenUpdating = False
Set f1 = Sheets("Amérique du Nord")
Set f2 = Sheets("Calculs")
f2.Select
'répartitions des conseillers
For i = 4 To 251 Step 13
If f1.Range("H" & i + 10).Value <> 0 Then
f1.Range("J" & i & ":L" & i + 9 & ", N" & i & ":O" & i + 9 & ", Q" & i & ":R" & i + 9 & ", T" & i & ":U" & i + 9 & ", W" & i & ":X" & i + 9 & ", Z" & i & ":AA" & i + 9 & ",AC" & i & ":AD" & i + 9 & ", AF" & i & ":AG" & i + 9 & ", AI" & i & ":AJ" & i + 9).ClearContents
f2.Range("H5").Value = f1.Range("I" & i + 1).Value 'Nombre de sièges
f2.Range("G4:G13").Value = f1.Range("H" & i & ":H" & i + 9).Value
Col_Rep = 10
Col_Moy = 11
Repartition_Sieges
End If
Next i
'répartitions des délégués
For i = 4 To 251 Step 13
If f1.Range("H" & i + 10).Value <> 0 Then
f1.Range("AN" & i & ":AP" & i + 9 & ", AR" & i & ":AS" & i + 9 & ", AU" & i & ":AV" & i + 9 & ", AX" & i & ":AY" & i + 9 & ", BA" & i & ":BB" & i + 9 & ", BD" & i & ":BE" & i + 9 & ",BG" & i & ":BH" & i + 9 & ", BJ" & i & ":BK" & i + 9 & ", BM" & i & ":BN" & i + 9).ClearContents
f2.Range("H5").Value = f1.Range("AM" & i + 1).Value 'Nombre de sièges
f2.Range("G4:G13").Value = f1.Range("H" & i & ":H" & i + 9).Value
Col_Rep = 40
Col_Moy = 41
Repartition_Sieges
End If
Next i
f1.Select
End Sub
Sub Asie_et_Océanie()
Application.ScreenUpdating = False
Set f1 = Sheets("Asie et Océanie")
Set f2 = Sheets("Calculs")
f2.Select
'répartitions des conseillers
For i = 4 To 251 Step 13
If f1.Range("H" & i + 10).Value <> 0 Then
f1.Range("J" & i & ":L" & i + 9 & ", N" & i & ":O" & i + 9 & ", Q" & i & ":R" & i + 9 & ", T" & i & ":U" & i + 9 & ", W" & i & ":X" & i + 9 & ", Z" & i & ":AA" & i + 9 & ",AC" & i & ":AD" & i + 9 & ", AF" & i & ":AG" & i + 9 & ", AI" & i & ":AJ" & i + 9).ClearContents
f2.Range("H5").Value = f1.Range("I" & i + 1).Value 'Nombre de sièges
f2.Range("G4:G13").Value = f1.Range("H" & i & ":H" & i + 9).Value
Col_Rep = 10
Col_Moy = 11
Repartition_Sieges
End If
Next i
'répartitions des délégués
For i = 4 To 251 Step 13
If f1.Range("H" & i + 10).Value <> 0 Then
f1.Range("AN" & i & ":AP" & i + 9 & ", AR" & i & ":AS" & i + 9 & ", AU" & i & ":AV" & i + 9 & ", AX" & i & ":AY" & i + 9 & ", BA" & i & ":BB" & i + 9 & ", BD" & i & ":BE" & i + 9 & ",BG" & i & ":BH" & i + 9 & ", BJ" & i & ":BK" & i + 9 & ", BM" & i & ":BN" & i + 9).ClearContents
f2.Range("H5").Value = f1.Range("AM" & i + 1).Value 'Nombre de sièges
f2.Range("G4:G13").Value = f1.Range("H" & i & ":H" & i + 9).Value
Col_Rep = 40
Col_Moy = 41
Repartition_Sieges
End If
Next i
f1.Select
End Sub
Sub Europe()
Application.ScreenUpdating = False
Set f1 = Sheets("Europe")
Set f2 = Sheets("Calculs")
f2.Select
'répartitions des conseillers
For i = 4 To 251 Step 13
If f1.Range("H" & i + 10).Value <> 0 Then
f1.Range("J" & i & ":L" & i + 9 & ", N" & i & ":O" & i + 9 & ", Q" & i & ":R" & i + 9 & ", T" & i & ":U" & i + 9 & ", W" & i & ":X" & i + 9 & ", Z" & i & ":AA" & i + 9 & ",AC" & i & ":AD" & i + 9 & ", AF" & i & ":AG" & i + 9 & ", AI" & i & ":AJ" & i + 9).ClearContents
f2.Range("H5").Value = f1.Range("I" & i + 1).Value 'Nombre de sièges
f2.Range("G4:G13").Value = f1.Range("H" & i & ":H" & i + 9).Value
Col_Rep = 10
Col_Moy = 11
Repartition_Sieges
End If
Next i
'répartitions des délégués
For i = 4 To 251 Step 13
If f1.Range("H" & i + 10).Value <> 0 Then
f1.Range("AN" & i & ":AP" & i + 9 & ", AR" & i & ":AS" & i + 9 & ", AU" & i & ":AV" & i + 9 & ", AX" & i & ":AY" & i + 9 & ", BA" & i & ":BB" & i + 9 & ", BD" & i & ":BE" & i + 9 & ",BG" & i & ":BH" & i + 9 & ", BJ" & i & ":BK" & i + 9 & ", BM" & i & ":BN" & i + 9).ClearContents
f2.Range("H5").Value = f1.Range("AM" & i + 1).Value 'Nombre de sièges
f2.Range("G4:G13").Value = f1.Range("H" & i & ":H" & i + 9).Value
Col_Rep = 40
Col_Moy = 41
Repartition_Sieges
End If
Next i
f1.Select
End Sub
Sub Repartition_Sieges()
Dim Nb_Sieges As Long, Total_Votants As Long, Total_Sieges As Long
Dim Quotient_Electoral As Double
Application.ScreenUpdating = False
Nb_Sieges = f2.Range("H5").Value
'Formules nombre de votants
f2.Range("G14").FormulaR1C1 = "=SUM(R[-10]C:R[-1]C)"
Total_Votants = f2.Range("G14").Value
Quotient_Electoral = Total_Votants / Nb_Sieges
f2.Range("H7") = Quotient_Electoral
'Formules d'attribution des sièges
f2.Range("J4:J13").FormulaR1C1 = "=INT(RC7/R7C8)"
f2.Range("J4:J13").Value = Range("J4:J13").Value
f2.Range("J14").FormulaR1C1 = "=SUM(R[-10]C:R[-1]C)"
Total_Sieges = f2.Range("J14").Value
'******************************************************************
'Recherche de la plus grande moyenne
f2.Range("L4:L13").FormulaR1C1 = "=IFERROR(RC7/(RC10+1),0)" '"=IFERROR(RC7/(RC10+1),RC7/1)"
f2.Range("K4:K13").FormulaR1C1 = "=IF(COUNTIF(R4C12:R13C12,RC[1])>1,RC[-4],0)"
'Formule d'attribution d'un siège supplémentaire à la liste obtenant la plus grande moyenne
f2.Range("M4:M13").FormulaR1C1 = "=IF(OR(AND(MAX(R4C12:R13C12)=RC[-1],COUNTIF(R4C12:R13C12,RC12)=1)," & Chr(10) & "AND(MAX(R4C12:R13C12)=RC[-1],COUNTIF(R4C12:R13C12,RC12)>1,MAX(R4C11:R13C11)=RC11)),1,0)"
Range(f1.Cells(i, Col_Rep), f1.Cells(i + 9, Col_Rep)).Value = f2.Range("J4:J13").Value
Col_Rep = Col_Rep + 2
Do While f2.Range("J14").Value < f2.Range("H5").Value
For j = 4 To 13
If f2.Cells(j, "M") = 1 Then
f2.Cells(j, "J") = f2.Cells(j, "J") + Cells(j, "M")
Range(f1.Cells(i, Col_Moy), f1.Cells(i + 9, Col_Moy)).Value = f2.Range("L4:L13").Value
Range(f1.Cells(i, Col_Rep), f1.Cells(i + 9, Col_Rep)).Value = f2.Range("M4:M13").Value
Col_Moy = Col_Moy + 3
Col_Rep = Col_Rep + 3
Exit For
End If
Next j
Loop
f2.Range("K4:M13").ClearContents
End Sub |
Partager