Condividi:        

compilare dei turni in 12 mesi

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

compilare dei turni in 12 mesi

Postdi raimea » 13/04/16 16:26

ciao
dovrei stendere i turni annuali di un reparto

i turni da gestire in totale sono una decina con molte casistiche.
quindi vorrei provare a procedere a "step" , un passo alla volta
provando a gestire i primi 2 turni con cod 2 e cod 3 che sono i piu frequenti.

il num totale di dipendenti da gestire x ogni mese e' in fgl generale AB16 (63)

partendo a compilare il tutto dal mese di gennaio vorrei compilare tutti i 12 fogli(mesi)
rispettando quanto andro a descrivere.

inizialmente a tutti i tecnici si assegna il turno base B dal lun-ven,
poi si procede come segue:

il primo turno da sistemare ha il codice 2
va dal lunedi -venerdi quindi dovro' scrivere 5 volte 2-2-2-2-2 allo stesso dipend.
e nella stessa settimana ci devono essere un num di dipendenti che fa lo stesso turno "2"
pari al numero riportato in cella AH17 fgl generale ( 9)

1ma condizione : quando un dipen. inizia il turno , deve avere la settimana precedente pulita
non deve aver fatto altri turni. deve avere tutte B da lun-ven

2da condiz : prima di far ripetere lo stesso turno allo stesso dipendente si deve verificare che tutti
abbiano fatto almeno 1na volta tale turno.

il secondo turno da sistemare ha il codice 3
va dal lunedi -venerdi quindi dovro' scrivere 5 volte 3-3-3-3-3- allo stesso dipend.
poi nella stessa settimana ci devono essere un num di dipendenti che fa lo stesso turno
pari al numero riportato in cella AH18 fgl generale ( 7)

1ma condizione : quando un dipen. inizia il turno , deve avere la settimana precedente pulita
non deve aver fatto altri turni.

2da condiz : prima di far ripetere lo stesso turno a stesso tecn si deve verificare che tutti
abbiano fatto almeno 1na volta tale turno

allego un file
https://dl.dropboxusercontent.com/u/96374724/turni1.rar

ES:
Immagine


ciao
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

Sponsor
 

Re: compilare dei turni in 12 mesi

Postdi Anthony47 » 14/04/16 23:21

Perdona, ma mi sono perso quasi subito...
Se leggo bene ci sono 67 risorse, ma per il momento chiedi di predisporre solo turni per 9+7 tecnici?
Che significa "Turno B"? In foglio Generale compaiono due "B", uno col commento "Base di sabato" e l'altro con Base / il Giorno di Domenica; poco per chiarire, abbastanza per confondere...
Poi dici "quando un dipen. inizia il turno , deve avere la settimana precedente pulita
non deve aver fatto altri turni. deve avere tutte B da lun-ven"; insomma B e' un turno di lavoro o e' un non lavoro?
Nella tabella che hai inserito nel messaggio, la maggioranza di righe riportano per Dom 15 l'indicazione "BI"; il commento sulla cella T2 di un mese qualsiasi riporta, per il valore BI, il commento "Riposo / Xche' lavoro Domenica": detto così (per come lo capisco) BI andrebbe bene su tutte le altre giornate, eccetto che per una domenica.

Volendomi fare del male, mi preoccupa anche l'ipotesi di procedere solo con 2 turni senza avere la visibilita' completa di quanti turni sono complessivamente da prevedere per ogni settimana, se sono tutti turni settimanali (o comunque di che tipo e quanti turni vanno organizzati complessivamente). Al momento (se i turni 2 e 3 sono i piu' numerosi) siamo a 16 risorse occupate su 67; quale sara' il tasso finale di utilizzo delle risorse? Mentre il sovrautilizzo delle risorse certamente sarebbe un problema, lo sarebbe anche il sottoutilizzo?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19222
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: compilare dei turni in 12 mesi

Postdi raimea » 15/04/16 06:18

ciao
ammetto non sia una " passeggiata...." :(
infatti se riuscissi a gestire almeno quei 2 turni,
poi il resto riuscirei più facilmente a completarlo manualmente
come sto facendo ora.

Se leggo bene ci sono 67 risorse,

attualmente nel file 63

chiedi di predisporre solo turni per 9+7 tecnici
si
Che significa Turno B

B= Base
ma ce ne sono di 3 tipi lun-Ven , di Sab, di DOM
attualmente vorrei mettere B solo da lun-ven , controllando l'intestazione di riga 4
gli altri codici del file poi li gestiro' manualmente.

Poi dici "quando un dipen. inizia il turno , deve avere la settimana precedente pulita
non deve aver fatto altri turni. deve avere tutte B da lun-ven"; insomma B e' un turno di lavoro o e' un non lavoro

B e' un turno di lavoro , e' il turno Base che fanno sempre tutti quando non anno altri turni

Nella tabella che hai inserito nel messaggio, la maggioranza di righe riportano per Dom 15 l'indicazione "BI"; il commento sulla cella T2 di un mese qualsiasi riporta, per il valore BI, il commento "Riposo / Xche' lavoro Domenica": detto così (per come lo capisco) BI andrebbe bene su tutte le altre giornate, eccetto che per una domenica.


come dicevo nella descrizione , i turni che dovrei gestire sono una 10na
attualmente mi servirebbe riuscire a compilare SOLO quei 2 turni ( 2e3) , come da descrizione ,
tralasciando x un attimo gli altri codici.

o comunque di che tipo e quanti turni vanno organizzati complessivamente

10 , ma non tutti sono settimanali, solo i cod .2 e 3 sono settim da lun-ven

Al momento (se i turni 2 e 3 sono i piu' numerosi) siamo a 16 risorse

Si , su 63

PS
i turni settimanali sono i più pesanti , e mi fanno le "PULCI" :lol:
se sbaglio a compilare un turno in più rispetto ad un dipendente
ovviamente ci puo stare una settimana in più o meno , ma non posso
avere dipendente che fa 3 settim in più un turno rispetto agli altri.

ciao
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

Re: compilare dei turni in 12 mesi

Postdi Anthony47 » 20/04/16 22:32

Non ero scomparso, stavo solo meditando...
La mia proposta e' inclusa nel file che puo' essere scaricato qui:
https://www.dropbox.com/s/xj7zh4u3cr6pm ... .xlsm?dl=0

Noterai che c'e' un foglio nuovo, chiamato "2e3"
Questo foglio e' usato per una pianificazione dei turni 2 e 3 lunga a piacere, ed e' organizzato in questo modo:
-da B1 verso destra ci sono tutti i nominativi; la riga 1 e' riservata solo ai nominativi!
-in B2 e B3 vengono calcolati per ogni nominativo i turni calendarizzati, che incrementano man mano che si calcolano nuovi turni. La formula prevede max 2000 righe di date (piu' di 5 anni, dovrebbero bastare).
-in A4 si mette la data iniziale da cui si vuole calcolare (in realta' poi la macro cerchera' il primo Lunedi')
-in A5 viene calcolata la data successiva come A4+1
-copiando la data da A5 verso il basso si determina il periodo che si vuole pianificare
-l'area da BU in avanti ora contiene formule usate per la verifica dei risultati (turni per data, min/max per Turno); se devi aggiungere altri Nominativi oltre i 63 previsti ti consiglio di aggiungere altre colonne per mantenere queste formule almeno 3 colonne distanti dai nominativi, e sotto ogni nominativo vanno copiate le formule di riga2 e riga3.

Questo foglio viene popolato tramite la macro DueAndTre, che ho inserito in Modulo5 del vba.

La programmazione verra' indicata come T2 e T3.

La prima volta l'area dei turni sara' vuota; dopo aver compilato i Nominativi, le formule sottostanti ai nominativi, la data iniziale in A4 e le formule in colonna A che determinano il periodo da calendarizzare, si potra' allora lanciare la macro DueAndTre che compilera' i turni del periodo, garantendo il miglior bilanciamento possibile tra i nominativi e controllando che le due settimane precedenti siano libere.

Ho rinunciato a controllare via mcro l'eventuale azzeramento del calendario turni, quindi tocca all'utente cancellare eventuali turni futuri, ad esempio (a) perche' cambia il numero di turni da garantire (ora sono 9 e 7; vengono letti da foglio "generale"), o (b) perche' si aggiunge un nominativo che quindi deve entrare nella turnazione.
A) Nel caso (a) bisogna cancellare dal primo lunedi' in cui si vuole un numero diverso di turni in avanti, ricompilare foglio "generale" AH17 e AH18; quindi lanciare la macro DueAndTre
B) Nel caso B la situazione e' appena piu' complessa: bisogna inserire il nuovo nominativo in coda agli esistenti, inserire le formule di riga2 e riga 3, e cancellare i turni dal primo lunedi' in cui e' prevista la partecipazione del nuovo nominativo. Rimane da fare un "allineamento figurativo" tra i turni fatti da tutti gli altri e il nuovo nominativo, altrimenti la macro cerchera' di assegnare al nuovo venuto tanti turni per metterlo al passo degli altri, cosa che (oltre che irregolare per il nuovo venuto) rallenterebbe alquanto la velocita' della macro viste le eccezioni che essa si troverebbe a gestire.
Per fare questo allineamento figurativo:
-leggere max e min dei turni fatti da tutti gli altri, sia per T2 che per T3; nel mio foglio questi dati sono calcolati in BW e BX, riga2 (T2) e riga3 (T3)
-scrivere nella colonna sottostante il nuovo nominativo tante volte FT2 e FT3 quanti sono i turni che gli mancano (solo perche' non era presente e non era pagato...); in questo modo le nuove turnazioni saranno equamente bilanciate tra tutti.

C'e' ovviamente anche il caso che un nominativo venga sostituito; in questo caso il suggerimento e' di sostituire in riga1 (e nei fogli Mensili futuri) il vecchio nominativo con il nuovo e mantenere la turnazione calcolata assegnandola al nuovo arrivato.

Oppure che un nominativo venga cancellato; in questo caso bisogna "marcare" come non piu' disponibile un certo nominativo; questo si fa accodando al nominativo la stringa convenzionale "#ND" (anche minuscolo); esempio: nominativo3_#ND
Contemporaneamente bisogna cancellare le formule presenti in riga2 e riga3 sotto il nominativo non piu' disponibile".
Poi si cancellano le turnazioni dalla data di non disponibilita' della risorsa e rilanciare la Sub DueAndTre. Un caso di questo tipo e' riportato in colonna BA; se lanci la Sub DueAndTre daccapo (dopo aver cancellato tutti i turni presenti) quel nominativo non sara' inserito nella turnazione.

C'e' infine la possibilita' che si vogliano eliminare turni vecchi non piu' necessari; es i turni fatti "l'anno scorso". Per questo:
-sulla prima data che vuoi mantenere fai F2-F9-Enter per trasformare la formula in data
-seleziona la prima cella di colonna A che vuoi mantenere (quella dove hai fatto F2-F9-Enter) ed estendi fino alla fine della colonna e oltre di almeno 10 righe; estendi fino all'ultima colonna con un nominativo.
-fai Contr-C (copia)
-seleziona A4 e premi Enter (per incollare)
-controllare dove l'incolla finisce e cancellare da colonna A fino a tutte le colonne con nominativi da lì verso il basso.
Questa sequenza dovrebbe preservare le formule utilizzate in Riga2 e riga3 e quelle che ho messo dopo le colonne BU. TUTTAVIA in questo modo potrebbero sparire eventuali "allineamenti figurativi", tipicamente inseriti in testa all'elenco e quindi candidati a essere facilmente eliminati. Quindi prima di partire a cancellare vecchie date controllate sempre che i turni contabilizzati in riga2 e riga3 siano bilanciati (dovrebbero max differire di 1-2); rifate poi il controllo dopo aver cancellato le vecchie date, e inserite gli "allineamenti figurativi" (FT2 e FT3) necessari per bilanciare.

Quindi in sostanza nel foglio "2e3" dovresti calcolare la turnazione dei turni T2 e T3 per un periodo piu' o meno lungo (fino a 2000 righe = 5 e passa anni)


Finita la compilazione delle turnazioni, si puo' passare a popolare i vari mesi.
In questo caso ci si limitera' a prelevare i dati dal foglio 2e3 per copiarli nel foglio del mese prescelto.
Questo lavoro deve essere fatto per ogni foglio mensile, utilizzando la Sub PopolaMese, sempre inserita in Modulo5.

Operativamente:
-si seleziona un foglio mensile, si avvia la Sub PopolaMese.

La macro controlla che il foglio selezionato abbia il nome di un mese (non controlla la coerenza tra il nome del foglio e la data impostata in A1-anno ed E1-mese).
Poi cancella tutti i "T2" e "T3" eventualmente presenti sul foglio.
Poi cerca nel foglio "2e3" e riporta giorno per giorno la turnazione dei nominativi coinvolti.
E' necessario che i nominativi elencati in questi fogli mensili siano gli stessi presenti nel foglio 2e3; quindi vanno risolte preventivamente le eventuali omonimie.
In caso che un nominativo trovato su foglio 2e3 non sia presente sul foglio mensile viene segnalato un errore, e quel turno non sara' presente sul foglio mensile; risolto l'errore si puo' o rilanciare la Sub PopolaMese oppure compilare il turno mancante a mano.

Mi fermo perche' forse ho detto anche troppo senza sapere se quanto fatto ha una reale applicabilita' alla tua esigenza.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19222
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: compilare dei turni in 12 mesi

Postdi raimea » 21/04/16 06:02

ciao
un super GRAZIE

ora con calma mi metto a simulare
ma dalla descrizio "quadra" tutto

ciao
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

Re: compilare dei turni in 12 mesi

Postdi raimea » 22/04/16 06:19

ciao
la descrizione delle 2 nuove macro e' ben fatta
e seguendo alla lettera non ho avuto difficolta nel fare delle prove

tutto si svolge come chiedevo.

c'e' un caso in cui non ho capito il comportamento della macro DueAndTre ed e' questo:

-vuoto il fgl 2e3
-predispongo il fgl 2e3 come da descrizione
- avvio la macro DueAndTre mi si popola il foglio correttamente

se pero' riavvio la macro DueAndTre con il fgl gia compilato
mi appare questa immagine e non succede nulla

Immagine

e' corretto ?
cosa dovrebbe succedere ?

c'e' poi questo pezzo di codice
che non sono mai riuscito a simulare:

Codice: Seleziona tutto
GoTo skippa

Rispo = Application.InputBox("Cancellare i dati?" & vbCrLf & "Premi OK per preservare i dati presenti" _
    & vbCrLf & "Password + OK per cancellare tutti i turni presenti e crearli daccapo", "Preservare?")

If Rispo = False Then
    MsgBox ("Processo abortito...")


quando dovrebbe intervenire questo tipo di controllo ?

ciao
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

Re: compilare dei turni in 12 mesi

Postdi Anthony47 » 23/04/16 01:09

Quella visualizzazione sconclusionata capita perche' non e' stata fatta nessuna operazione (l'elenco e' gia' tutto compilato), quindi la progress-bar rimane la nello stato di progettazione iniziale; insomma e' un errore :D
Per rimediare, la cosa piu' semplice e' modificare la UserForm_Initialize:
Codice: Seleziona tutto
Private Sub UserForm_Initialize()
Me.TextBox2.BackColor = RGB(100, 250, 100)
Me.TextBox1.BackColor = RGB(200, 100, 100)
Me.TextBox2.Width = Me.TextBox1.Width       '<<< Aggiunta
End Sub
Dal vba, tasto dx sulla voce ProgressInfo; scegli Visualizza codice; modifichi la UserForm_Initialize come scritto.

Quanto a quel pezzo di codice, esso semplicemente e' skippato: inizialmente avevo previsto di azzerare la tabella dei turni, inserendo una password, mantenendo le date fino alla fine del mese corrente; poi ho optato per l'azzeramente totalmente manuale e allora mi sono limitato a mettere quel GoTo skippa, lasciando il codice per eventuali ripensamenti.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19222
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: compilare dei turni in 12 mesi

Postdi raimea » 23/04/16 05:47

ciao
ok ho capito e sistemato come indicato.

aggiungero' io un cancella foglio, controllato da un preavviso

grazie
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

Re: compilare dei turni in 12 mesi

Postdi Flash30005 » 24/04/16 02:42

Complimenti Anthony per il Super lavoro

I turni sono sempre stati un rompicapo per tutti coloro che si sono cimentati per farli quadrare
e penso che questo programma possa tornare utile a molti altri utenti

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "compilare dei turni in 12 mesi":


Chi c’è in linea

Visitano il forum: papiriof e 66 ospiti