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
| Sub Nom_FIP_1(w() As String)
Dim v As Byte, c As New Collection, x As Integer, y() As Variant, z() As Variant, i As Byte
Dim agentdisponible() As Boolean ''''''''''''''''''''''''''''
ReDim agentdisponible(nbragent) ''''''''''''''''''''''''''''''
Randomize
y = Array(16, 17, 18) 'prendre des agents des lignes 9 à 25, 26 à 34 et 35 à 59
z = Array(9, 25, 42)
For i = 1 To nbragent '''''''''''''''''''''''''''''
agentdisponible(i) = False ''''''''''''''''''''''''''
For i = 0 To 2
Do While c.Count < 4 ' en prendre 4 dans chaque lignes sélectionnée précédemment
cpt% = cpt% + 1
If cpt% > MAX_ITER Then
cpt% = 0
Exit Do
End If
x = Int(y(i) * Rnd + z(i))
If Cells(x, 3) = 1 And Cells(x, 3).Interior.ColorIndex <> 3 Then' les prendre si les cellules contiennent des 1 et ne sont pas rouges
On Error Resume Next
c.Add Cells(x, 3).Address, CStr(Cells(x, 3).Address)
If Err = 0 Then
On Error GoTo 0
w(v) = Cells(x, 2).Value ' prendre les cellules de la colonne B
agentdisponible(x) = True ''''''''''''''''''''''''
v = v + 1
End If
On Error GoTo 0
End If
Loop
Set c = Nothing
Next i
Next i ''''''''''''''''''''''''''''''''''
End Sub |
Partager