Bonjour forum,
Voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Les passages que j'ai rajouté et qui ne marchent pas sont mis comme ceci:'''''''''''''
Voilà ce que j'aimerais faire: quand les cellules répondent aux critères( pas rouges et contenant des 1) et sont sélectionnés par le tirage alors les mettre en TRUE.
et dire au programme de prendre au début de chaque tirage que les cellules étant FALSE.
Mais ce que j'ai mis dans le code ne marche pas et je n'arrive pas à tout compléter.
Merci de m'aider.