répartition sous VBA

judu

XLDnaute Nouveau
bonjour

j'aimerais mettre en place un fichier pour mon boulot

j'arrive à générer des listes d'ouvriers et à calculer mes besoins mais j'aimerais répartir les gens aléatoirement sur les postes, tout en gardant en vue le critère "formation" et évidement sans doublon dans le choix de noms... (difficile de séparer un ouvrier en 2, rare sont ceux qui acceptent...)

je met en PJ un fichier pour illustrer ce que j’essaie de faire:

feuille 1, nous avons les postes possibles et les gens formés pour chaque poste
feuille 2, le nombre d'ouvriers nécessaires sur chacun des postes
enfin sur la feuille 3, la répartition aléatoire de personnes sur les postes

j'aimerais de l'aide pour une macro qui choisi dans la feuille 1, le nombre de personnes indiqués pour chaque poste dans la feuille 2 et créée la liste de la feuille 3, toujours sans doublons évidemment...

pensez vous pouvoir m'aider?

merci d'avance
 

Pièces jointes

  • demo.xlsx
    10.2 KB · Affichages: 20

judu

XLDnaute Nouveau
hello,

je suis en train d'essayer vos solutions, j'ai un souci avec celle de youky,

lorsque je l'adapte a mon fichier, plus rien ne marche
la première fois j'obtenais une liste mais toutes équipes confondues je pense avoir corrigé le PB
mais maintenant dès le lancement de la macro j'ai un message d'erreur...
upload_2018-1-20_15-14-48.png


et le débogueur s'arréte sur une ligne ou je ne vois pas d'erreur:
upload_2018-1-20_15-15-53.png


une idée?
 

youky(BJ)

XLDnaute Barbatruc
Hello,
J'ai ajouté du code en Userform1 (ici en gras)

Private Sub UserForm_Initialize()
With Feuil4
Set dico = CreateObject("Scripting.Dictionary")
a = .Range("A2:A" & .[A65000].End(xlUp).Row)
For i = LBound(a) To UBound(a)
dico(a(i, 1)) = ""
Next i
ListBox1.List = Application.Transpose(dico.keys)
On Error Resume Next
For k = 0 To ListBox1.ListCount - 1
ListBox1.Selected(k) = Feuil3.ListBox1.Selected(k)
Next

End With
End Sub

EDIT: il est préférable de remplacer on error par
'On Error Resume Next
If Feuil3.ListBox1.ListCount = 0 Then Exit Sub

Bruno
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
115

Statistiques des forums

Discussions
312 206
Messages
2 086 201
Membres
103 156
dernier inscrit
Ludo94130