assegnazione turni casuali vba
Hai un problema con Excel? 
assegnazione turni casuali vba
di et (utente non iscritto) data: 20/10/2017 15:44:17
Buongiorno a tutti, ho un problema in vba che riguarda l'assegnazione di turni casuali dal lunedì alla domenica, in determinate fasce e in determinate mansioni
in pratica ho 23 lavoratori, ognuno con un parametro orario settimanale diverso da rispettare e con 2 riposi settimanali, e devo assegnare loro ogni giorno delle mansioni (negozi, preapertura, fasce di presidio) secondo vari fabbisogni .. ad esempio il lunedi avrò bisogno di 15 persone che fanno i negozi, 8 che fanno il presidio ecc e così via
la logica che sto cercando di implementare è quella di andare ad assegnare casualmente il turno tramite la funzione randomize, che assegna finche il max della colonna (contato con conta.se) non diventa uguale al fabbisogno (imposto manualmente) , andando ad assegnare rispettando il vincolo orario settimale e i 2 giorni di riposo
ad esempio per il turno dei negozi ho scritto la seguente macro:
dove max e fabb sono quelli relativi alle mansioni mentre massi e fabi sono quelli relativi al parametro orario
il codice si compila però non riesce a soddisfarmi i fabbisogni! dove sbaglio? grazie a tutti in anticipo!
turnonegozi:
For i = 5 To 12
fabb = Cells(31, i)
max = Cells(30, i)
If max = fabb Then
GoTo negozi
End If
negozi:
Randomize
numcas = Int(22 - 1 + 1) * Rnd + 1
massi = Cells(numcas + 6, 4)
fabi = Cells(numcas + 6, 3)
If Cells(numcas + 6, i) = "" And massi < fabi Then
Cells(numcas + 6, i) = 1
End If |
Vuoi Approfondire?