Mettre des valeurs boolennes à des agents
Bonjour,
Voilà mon problème je fais un planning et les agents se reportent d'une colonne à l'autre (une colonne étant une activité).
Or je qu'ils fassent qu'une activité à la fois.
Serait-il possible de mettre des booléens à des agents et de dire une fois qu'un agent est pris alors ne plus le reporter?
Exemple:
tous les agents: booleens True
on met un agent dans une activité booleen False
dans l'activité suivante le programme ne prend que les agents qui ont un booleen True.
Mon programme possède 7 colonnes.
Salut le forum
Avec un fichier c'est beaucoup mieux.
Tu n'as qu'à cliquer sur ce lien : Joindre un fichier pour que l'on puisse t'aider, et recopier l'adresse sur ta ficelle.
Mytå
Bonsoir,
Bonsoir, Mytå,
ce code, il doit être apparu au moins 20 fois, entre tous les forums......
Mais il persiste......
Et toujours sans fichier exemple....
Il doit être le seul à bien intégrer toutes les possibilités....
Car pas beaucoup de réponses, sur quelque forum que ce soit....
Mais il persiste, et il a raison....
Peut-être, qu'un moment, il va se rendre compte, qu'un fichier, ça peut aider, mais surtout, une bonne explication, car une dizaine de codes enchaînées, ce n'est pas ce qu'on fait de mieux....
Bonne soirée
Edit, et même si cela n'a rien à voir, j'ai pratiquement résolu un programme d'un questionneur, son prg initial comprenait entre 30 et 35 procédures....
mon prg final, une seule procédure....
A réfléchir....
Re le forum
Alors, qu'il reste donc dans sa bulle (Je ne réponds plus à ses messages)
Mytå
Désolé je pouvant pas me connecter avant.
Voici le fichier.
https://www.excel-pratique.com/~files/doc2/9ZyN0classeur1_pmo.zip
Quelqu'un pourrait regarder mon fichier et m'aider?
Bonjour forum,
Voici mon code:
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. [/code]