Logo Einstein grigio sfumato
e = m x c al quadrato

Calcolo ore lavorative con Excel

Vediamo come si calcola il calendario delle ore lavorative dell'anno con l'aiuto di Microsoft Excel.




Calcolare le ore lavorative per un dato anno può servire ad un ufficio del personale oppure al controllo di gestione di una azienda, oppure anche ad un privato che vuole controllare quante ore lavorative ci sono nel prossimo anno, pianificare le ferie, i ponti, le vacanze, ecc.

Questa mini-guida si riferisce all'utilizzo di Microsoft Excel per il calcolo delle ore lavorative, delle festività e del piano ferie per un qualsiasi anno.

Verrà spiegato dettagliatamente come procedere "da zero" all'impostazione dei vari fogli di lavoro, dei formati celle, delle formule e delle macro.

Questo esempio vale anche per chi non è pratico di macro e di VBA (Visual Basic For Application), infatti le celle possono essere sempre modificate manualmente in qualsiasi momento.

Le macro di questo esempio chiedono sempre conferma prima di sovrascrivere qualsiasi valore nelle celle.

Iniziamo con l'impostazione del foglio 'Pianificazione mensile' (figura 1).

La cella D1 (prima riga, quarta colonna) contiene sempre l'anno di riferimento e non deve mai essere spostata.

La struttura del foglio pianificazione ore mensili è sempre la stessa, è composta di 5 colonne ('data', 'giorno della settimana', 'progressivo giorno lavorativo nel mese', 'etichetta festività o ferie','numero della settimana da inizio anno').

La riga 3 contiene le etichette con i nomi dei 12 mesi, a partire da A3 ('gennaio') e fino a BD3 ('dicembre').

Si da per scontato che l'orario di lavoro normale sia di 8 ore per 5 giorni, quindi di 40 ore settimanali e che il sabato e la domenica con siano mai da considerare giornate lavorative.

Il numero delle settimane è calcolato in accordo alla normativa previdenziale INPS conteggiando il numero dei sabati cadenti in ciascun mese solare.

Per cambiare l'anno basta semplicemente sovrascrivere la cella D1 con il nuovo valore (esempio: 2007).


Nella figura 2 vediamo le ultime 3 righe di ciascun foglio mensile.

Nella riga 37 viene ripreso il numero delle giornate lavorabili (o lavorative) mediante la funzione '=MAX(C6:C36)' (per gennaio).

Nella riga 38 viene riportato il totale delle ore di ferie del mese.

Nella riga 39 viene riportato il totale delle ore lavorative del mese (al netto delle ferie e delle festività) ottenuto moltiplicando semplicemente il totale delle giornate lavorative di rigo 37 per 8 ore.

La cartella di lavoro è dotata di una unica macro, 'Macro1', che viene richiamata con 'CTRL-K' come spiegato nella prima riga.

Attenzione! La macro funziona solo se la cella selezionata è nella riga 3 che contiene le etichette con i nomi dei mesi: questo per evitare di dover specificare ogni volta quale mese si vuole elaborare.

La macro a sua volta richiama uno 'UserForm' (in pratica è una maschera) che ha la funzione di Menù per le 4 funzioni che si possono eseguire: 'Genera il calendario per il mese corrente', 'Genera il calendario per tutto l'anno', 'Azzera mese corrente', 'Azzera tutto l'anno' (figura 3).

La zona che viene riempita o svuotata non include naturalmente nè la riga 3, nè le ultime 3 righe (37-39).

La macro è in grado di determinare automaticamente quanti giorni ci sono in ciascun mese e anche se l'anno è bisestile.

La prima funzione, 'Genera mese corrente', genera il calendario e le ore lavorative per il mese attualmente selezionato.

Per selezionare un mese differente occorre fare clic sul pulsante 'Chiudi', selezionare nel rigo 3 l'etichetta di un altro mese, quindi fare di nuovo CTRL+K.

La cartella contiene altri 3 fogli di lavoro di supporto: il primo è il 'Riepilogo ore annue' (figura 4).

Questo foglio contiene i riferimenti al totale delle ore lavorative di ciascun mese (vedi contenuto della formula in B8) e in B20 calcola automaticamente il totale delle ore lavorabili nell'anno al netto delle ferie, delle festività e delle causali di assenteismo.

Queste ultime vengono gestite soltanto manualmente.

Il secondo foglio di supporto si chiama 'Festivi' (figura 5) e contiene una semplice tabella con dodici righe, una per ciascun mese, e cinque colonne.

Nelle celle vanno indicate semplicemente le 'date' nelle quali cadono le festività per l'anno in corso.

Ad esempio il 17 aprile è il Lunedì dell'Angelo e il 25 la Festa della Liberazione.

Il giorno di Pasqua non va indicato perchè cadente sempre in domenica.

Attenzione! Occorre aggiungere la data della festa del patrono locale (che varia di città in città).

Il terzo foglio di supporto si chiama 'Ferie' (figura 6) e contiene il piano delle ferie per l'anno corrente.

Il foglio ha dodici righe, una per mese, e 23 colonne (23 è il numero massime di date lavorative in un mese).

Anche in questo foglio vanno indicate le 'date' nelle quali l'azienda chiude oppure il dipendente o il reparto sono in ferie.

Ad esempio per il mese di agosto sono state indicate tutte le date delle prime 3 settimane: 1-2-3-4, 7-8-9-10-11, 14-16-17-18 (da notare che il 15 viene 'saltato' perchè già considerato come festività).

Nell'ultima settimana dell'anno vengono considerate giornate di ferie i giorni 27, 28 e 29 dicembre.

Questa tabella può essere utilizzata naturalmente anche per pianificare i 'ponti'.

Nella miniguida seguente troverete quanto vi avevamo promesso in cima alla pagina, e cioè le istruzioni passo-passo su come fabbricarsi la macro, lo UserForm e il codice VBA completo di tutte le funzionalità necessarie.

Generazione del calendario ore lavorative con Macro di Excel






I Tutorial di Microsoft Excel


Home page MC2 E-Learning



Dr.Maurizio Cucchiara

Amministratore unico
MC2 E-Learning S.a r.l.
Formazione per il Web
autore del corso:
"VBA Corso Base"
disponibile on line su questo sito
http://www.mc2.it/html/vba.html





Condividi sui social network:

Social buttons



Iscriviti al nostro
nuovissimo
canale Youtube!


Iscrivi al nostro canale Youtube

Iscrivimi ora





Potrai restare aggiornato
sui nostri pił recenti
video-tutorial su:
Microsoft Access ed Excel
e molto altro...


Cerca sul web con Google: