› Sviluppare funzionalita su Microsoft Office con VBA › Turnazione operai
-
AutoreArticoli
-
Buongiorno a tutti, sto cercando di trovare una soluzione a un rompicapo, senza per ora aver trovato soluzione... Devo gestire una turnazione di 7 operai su 4 turni, giornata, mattino, pomeriggio e notte.
Da lunedì a venerdì ho 3 operai su giornata e uno per ciascun turno (mattina, pomeriggio e notte). Il sabato è la domenica devo coprire con 1 operaio per turno, il tutto rispettando le 5 giornate lavorative e facendo una rotazione il più possibile uniforme nei weekend.
Ho anche a disposizione 2 operai jolly, che però devo utilizzare il meno possibile...
Qualcuno è in grado di aiutarmi?
Grazie
Naturalmente ho il vincolo di 5 giornate lavorative e del riposo obbligatorio a chi esce dal turno notturno.
Questo è un forum sull'uso di Excel, se tu sai come gestire la turnazione noi possiamo aiutarti a farlo con excel.
Comunque facendo una ricerca con google
https://www.google.com/search?client=firefox-b-d&q=excel+turnazione
Perdonami, sono poco avvezzo all'uso di Excel, per nulla di vba.
Allego un esempio di cosa intendo, ma dovrei cercare di fare una rotazione dei nani e ove necessario usare i 2 op.
Sempre se sia possibile, io ora lo sto facendo a mano, ma con problemi.
Allegati:
You must be logged in to view attached files.Scusami @franco71, ma tu vorresti che ti si facesse il programmino?
Beh, per quello ci sono le software house!
Comunque ci sono tanti esempi in internet da adattare, ma il consiglio è di studiare bene VBA
Buona giornata
Paolo
Buongiorno, non intendevo certo che mi si dovesse creare qualcosa, ma più che altro capire se con vba si potesse assolvere a questa mia richiesta. Chiedo agli admin di chiudere il post, probabilmente ho capito male io l'approccio al forum.
Buona giornata e grazie comunque.
ma più che altro capire se con vba si potesse assolvere a questa mia richiesta
Ma la tua richiesta non è chiara, come già detto se tu sai come gestire la turnazione possiamo aiutarti ad usare excel e vba, se non conosci l'algoritmo per farlo devi rivolgerti a forum più specifici.
@franco71 nessuno ti accusa di nulla, ma se non hai nemmeno idea di quello che si può fare e di come farlo, altro che trasformarlo in un programmino in VBA!
Il problema è che dovresti cominciare a farti qualche foglio Excel con i dati di partenza (tipo anagrafica degli operai e calendario) e poi, pian pianino cercare di capire quali sono le regole che devono essere rispettate...
Che ne so tipo che un operatore non può fare più di x turni in n giorni oppure che non si possono fare y turni senza che fra di loro non ci siano almeno z pause o che ne so io!
Cmq sono sicuro che questa problematica in rete è già stata affrontata!
Paolo
Lungi da me la polemica, intendevo dire che ho i vincoli che ho scritto sopra, e chiedevo se fosse possibile fare una sorta di file, su cui sto cercando di lavorare, che mi permetta di effettuare una rotazione automatica, avendo 8 persone totali, 6 che devono assolutamente fare le 5 giornate e 2 che farebbero da jolly, i turni sarebbero da inserire senza grossi vincoli, se non la miglior uniformità del numero turni mensile, le succitato 40 ore settimanali, con 2 giornate di riposo, da lunedì a venerdì 3 persone con il, turno 7-16, 1 con 6-14, 1 con 14-22 e 1 con 22-06.
Sabato e domenica mi servirebbero 1 per il turno 7-16, 1 per 6-14, 1 per il 14-22 e 1 per il turno 22-06. Chi fa il turno 6-14 deve fare il 22-06 il giorno successivo.
I jolly sono a disposizione per coprire i turni in più e vanno utilizzati solo in caso di necessità.
Sto cercando di metter giù un Excel con non poca difficoltà, finora l'ho fatto a mano, ma ora ho ben altro da seguire.
Il software l'ho proposto al capo, ma fino a quel momento non se ne parla. Se riuscisse a qualcuno di darmi qualche consiglio sarebbe ben accetto, e ringrazierei infinitamente, altrimenti ringrazio lo stesso.
Ripeto, nessuna polemica, solo richiesta di consigli su come potrei procedere.
Buona giornata a tutti
A parer mio l'unica soluzione è una procedura in VBA (un "programmino") che vada a creare questi calendari in base a delle regole!
Ritengo che si possa fare, per quanto non sia così banale, ma non senza conoscenza di VBA!
In bocca al lupo!
Paolo
A parer mio l'unica soluzione è una procedura in VBA (un "programmino") che vada a creare questi calendari in base a delle regole!
Innanzitutto grazie per aver speso del tempo per rispondermi, ora che so che si può fare, credo che studierò un po'.... Domattina vi metto il file che compilo a mano, in cui ci sono dei dati fissi a scalare settimana per settimana che mi permettono la rotazione del personale, magari già l'automazione di questa procedura mi aiuterebbe nella compilazione.
Buona serata
Ciao @franco71
Buongiorno a te, di seguito il file.
Come vedrai, la turnazione riguardanti i turni 14-22, 6-14 e 22-06 è a rotazione e quindi costante, mentre la turnazione 7,30-16 è scostante, poiché dal lunedì al venerdì mi occupa 3 operatori, mentre sabato, domenica e festivi me ne occupa uno solo. Ho il vincolo delle 5 giornate e del riposo dopo il turno notturno, da qui l'inserimento di 2 operatori in sostituzione che mi coprono i turni oltre le 5 giornate. Questi operatori in sostituzione devono fare unicamente il turno 7,30-16.
Spero di essere stato chiaro nell'esposizione dei fatti, e vi ringrazio.
Allegati:
You must be logged in to view attached files.Dimenticavo, il vincolo delle 5 giornate lavorative non è previsto per gli operai in sostituzione, infatti loro hanno meno giornate.
Scusami, non capisco più niente. Parlando di orari "io intendo un lavoro ognuno"
Nel 1° Post, scrivi (lun-ven) 3g + 1m + 1p + 1n = 6lavori x 5giorni = 30lavori.
Scrivi (Sab-Dom) 1m + 1p + 1n = 3lavori x 2giorni = 6lavori... Totale 36lavoriNel 2° Post, scrivi (lun-ven) 3g + 1m + 1p + 1n = 6lavori x 5giorni = 30lavori.
Scrivi (Sab-Dom) 1g + 1m + 1p + 1n = 4lavori x 2giorni = 8lavori... Totale 38lavoriOra sappiamo che per fare 36/38lavori a settimana servono minimo 8 lavoratori.
Dall'allegato noto che ci sono solo 6 operai fissi + 2 Jolly. Mi domando come farai quando sono in malattia/permesso/ferie, se esiste un'altro particolare (ex invece di 3giornalieri posso fare con 2giornalieri), "potrebbe" esserci una soluzione. Se invece non c'è altro particolari, dalle mie piccole prove è quasi impossibile.
>>>Ho anche a disposizione 2 operai jolly, che però devo utilizzare il meno possibile...
Inutile scrivere quella frase, perchè a pieno "regime" risparmierai al massimo 2/4lavori alla settimana. Confermi che sono 6operai + 2jolly senza nessun "particolare"?Aspetta, cerco di fare chiarezza....
Il secondo post è corretto, nel primo avevo omesso i turni "giornata".
Malattie permessi e ferie sono gestiti in altro modo, a me in questo caso interessa la turnazione.
Confermo che sono 6+2 operai, ma la discriminante è che ai 2 non mi è concesso far fare i 3 turni ma solo, 7,30-16
Come scritto (con i dati forniti), per me è impossibile (mi piacerebbe vedere se un programma-pagamento ci riesce). Per creare una "stringa" matematicamente serve che tutti i dati abbiamo caratteristiche idonee.
Cos'è una stringa? Non è altro che una riga-unica nella quale si vede ogni giorno quale turno fare. Ex GGGRPPPRNNNRMMMRGGGRNNNRMMM..... che ogni operaio dovrà fare.Nella foto, quella sotto è una stringa-matematica. Creata su una base di 21giorni con la durata di 84giorni. Come vedi garantisce 1M+1P+1N ogni giorno, mà non rispetta i 2 giorni-riposo alla settimana. Allora in quella sopra ho inserito manualmente dei G+R per fare in modo che rispetti i vincoli solo degli Operai(se riesci farla migliore, fai un prospetto). Una volta create le formule o VBA, dovrai solo immettere i Jolly settimanalmente. Fammi sapere cosa decidi
Allegati:
You must be logged in to view attached files.Ciao, ci ho lavorato un po', e riesco a creare qualcosa di regolare inserendo i turni ai 6 operai con questa matrice:
14-22, 6-14, 22-06 e riposo. Poi 2 celle libere verso dx e ripeto.
Passando all'operato sotto sfalso il tutto di una cella verso dx.
Le giornate le devo mettere a mano, guardando di volta in volta di riempire la settimana fino alle 5 giornate per tutti i 6 operai, solo dopo uso i jolly per completare le esigenze giornaliere.
La Tua "striscia" non va bene perché si ripete verticalmente.
Sulla foto allegata (tabella sopra) c'è un errore, il Sab-Dom letto verticalmente non può essere fatto con tre R, in questo allegato è stato corretto. Nel foglio "Striscia", le prime tre tabelle sono valide, le altre no. Credo che la tabella giusta debba essere fatta con 21giorni x 6righe = 126giorni ed avere in ogni colonna 1M+1G+1P+1N (totale 90giorni lavorativi diviso 5 = 18 per 2 = 36riposi). La terza tabella non mi piace, tutti quei "N-R-M" (uno smette alle 6:00, va a letto e l'indomani mattina deve essere presente alle 6:00), mi sembra meglio con strisce continue (mmm,ppp,nnn se vuoi cambia???, dopo la incolli nella zona-Nera e premi il tasto Crea_Stringa, poi NON dovrà mai più essere cambiata). Ogni mese sarà creato dalla "striscia" ed inserisce i Jolly solo il Lun-Mar-Mer-Gio-Ven. Ps Abilita le macro, cambia il mese in C2 e premi il tasto, le formule in K:N devi cambiarle (da riga in zona ex D6:J14). Le celle colorate di nero nascondono alcuni dati importanti, la striscia è iniziata il 1/1/2022.Allegati:
You must be logged in to view attached files.Raffaele, purtroppo la mia turnazione è basata su cicli precisi che non decido io, e che sono pomeriggio, mattino, notte e riposo in questo ordine.
Le giornate le inserisco a completare. Le 5 giornate a settimana, a questo punto, le giornate che restano fuori le distribuisco sui 2 jolly.
Ti allego file per capire meglio.
Comincio a pensare che non si possa automatizzare il processo, nemmeno per i 3 turni.
Comunque ti ringrazio per l'interessamento
Allegati:
You must be logged in to view attached files.Nel files precedente ho trovato un errore (in Modulo1 modificare la riga)
N = Application.WorksheetFunction......., "7,30-16") in ..... "7,30_16">>> è basata su cicli precisi che non decido io
Dovresti chiedere a "questi signori", come fanno a rispettare 5G lavorativi + 2RHo visto l'allegato e vedo (ex OP1 smette il 29/09/2022 ore 22:00 e dopo sole 8 ore deve essere ripresente...siamo matti...) + diverse celle vuote. In sostanza quello che dici (pomeriggio, mattino, notte e riposo) non è altro che la 3° Tabella(invertendo pomeriggio<>mattino). Riallego col codice modificato per la 3° Tabella (pure lei modificata). Se non siamo d'accordo che ogni tot giorni bisogna fare tot riposi, non saprei cos'altro rispondere.
Allegati:
You must be logged in to view attached files. -
AutoreArticoli
