Calcolo ore ORDSTR automatico
Hai un problema con Excel? 
Calcolo ore ORD/STR automatico
di ERMES.MAZ data: 25/12/2014 22:58:58
Ciao a tutti
scrivo per chiedervi un aiuto...
Nel file allegato vi è una tabella con le settimane del mese e settimana x settimana il resoconto delle ore ordinarie e straordinarie effettuate.
I valori settimana 1... 2 ecc variano da mese a mese e vorrei riuscire a calcolare in modo automatico le ore nelle colonne evidenziate in giallo.
Ora è stato fatto manualmente... È possibile mediante formule automatizzare il tutto?
Grazie e ancora BUONE FESTE
di ERMES.MAZ data: 25/12/2014 23:08:38
I codici non presenti in tabella come RFI, RO, RC, hanno valore 0
Il codice F se presente 5 volte con RC e RO deve avere valore 0
Ma...
Se presente 1 o più volte con un solo varore tra RC e RO o RFI ha valore sul conteggio dello straordinario.
Esempio
F F F RFI 1 1 2 deve dare 16 ore ordinarie e 8 straordinarie
F F F RO 1 1 2 oppure F F F RC 1 1 2 è uguale all'esempio sopra
Se fosse
F F F RFI RO 1 2 darà 16 orsinarie 0 straordinarie
di ERMES.MAZ data: 26/12/2014 17:18:47
Nessuno??
di Mister_x (utente non iscritto) data: 28/12/2014 13:35:22
ciao Ermes
eravamo a festeggiare
comunque in base al tuo file con dati esposti di verifica sono uscite queste due funzioni
una e Ordinario() la seconda Straordinario()
PS attenzione che non devono essere colorate le celle diversamente da come le vedi nel tuo file, giustamente quelle da escudere durante la settimana tipo la prima e la quinta
la colonna degli Ordinari e' verde ma per un mio riscontro visivo per non confondere con Straordinario
utilizzo in K6 per Ordinario
K6=Ordinario(D6:J6) range della settimana
L6 per straordinario range della settimana;valore di Ordinario
L6=straordinario(D6:J6;K6)
Attenzione che mancano ai calcoli le altre opzione della tabella, in quanto non ho trovato nessun riscontro come calcolare
TUA TABELLA
TABELLA PER CALCOLO ORE ORDINARIE e STRAORDINARIE
CODICI C C+ C* C** 1 1+ 1* 1** 2 2+ 2* 2** 3 3+ 3* 3**
ORE 8 12 4 9 8 12 0 8 8 12 0 8 8 12 9 10
si intende il tutto da verificare
ciao e Buon ANNO
TABELLA PER CALCOLO ORE ORDINARIE e STRAORDINARIE
CODICI C C+ C* C** 1 1+ 1* 1** 2 2+ 2* 2** 3 3+ 3* 3**
ORE 8 12 4 9 8 12 0 8 8 12 0 8 8 12 9 10
Funzioni inserite
PS attenzione al valore (Diverso) in quanto il programma taglia , va inserito
Option Explicit
Function Ordinario(RangCelle As Range) As Long
Dim TotOre, Ver11, Ver1, Vercol As Long
Dim Cella, Colore As Variant
Ver11 = 0
Ver1 = 0
For Each Cella In RangCelle
Colore = Cella.Interior.ColorIndex
If Colore (Diverso) xlNone Then
If Cella (Diverso) "F" And Cella (Diverso) "RC" And Cella (Diverso) "RO" And Cella (Diverso) "RFI" Then
Vercol = Vercol + 1
End If
End If
Select Case Cella
Case "F"
Ver1 = Ver1 + 1
Case "RFI"
Ver1 = Ver1 + 1
Case "RO"
Ver1 = Ver1 + 1
Case "RC"
Ver1 = Ver1 + 1
Case 1
TotOre = TotOre + 8
If Ver1 = 4 Then Ver11 = Ver11 + 1
Case "C"
TotOre = TotOre + 8
Case "C+"
TotOre = TotOre + 12
Case 2
If Ver1 (Diverso) 4 Or Ver11 (Diverso) 2 Then TotOre = TotOre + 8
Case 3
TotOre = TotOre + 8
End Select
Next
If TotOre >= 40 Then TotOre = 40
Ordinario = TotOre - (Vercol * 8)
End Function
Function Straordinario(RangCelle As Range, ValOrd As Long) As Long
Dim TotOre, Vercol As Long
Dim Cella, Colore As Variant
For Each Cella In RangCelle
Colore = Cella.Interior.ColorIndex
If Colore (Diverso) xlNone Then
If Cella (Diverso) "RC" And Cella (Diverso) "RO" And Cella (Diverso) "RFI" Then
Vercol = Vercol + 1
End If
End If
Select Case Cella
Case 1
TotOre = TotOre + 8
Case "C"
TotOre = TotOre + 8
Case "C+"
TotOre = TotOre + 12
Case 2
TotOre = TotOre + 8
Case 3
TotOre = TotOre + 8
End Select
Next
Straordinario = TotOre - (ValOrd + (Vercol * 8))
End Function
|
di Ermes.Maz (utente non iscritto) data: 28/12/2014 14:39:06
Mister X......
Sei UN GRANDE!!!!!
Con tutto il cuore ti dico GRAZIE e auguro anche a te e famiglia un FANTASTICO 2015
Vuoi Approfondire?