Ciao ecco il file con la macro, ho notato che le entrate ed uscite non vengono inserite in formato orario, mi sono attenuto a quel formato.
Raffaele, ciao la tua formula non funziona bene in quanto da il risultato prima che si inseriscono le entrate ed uscite, almeno a me da quel risultato.
il file non ha bisogno di ordinamento basta inserire la data,cantiere,dipendente, entrata ed uscita.
quando si inserisce l'uscita parte la macro che da il risultato controllando giorno, cantiere, dipendente e sovrapposizioni orari, riportando l'esito nella colonna "F", la formattazione condizionale a questo punto è un di più, l'ho lasciata tanto per.
una sola cosa controlla soltanto il nuovo inserimento, se si vogliono aggiornare quelli già inseriti devo modificare la macro.
questa le macro sono 2 una nel modulo del foglio, l'altra in un modulo Standrd
Modulo del foglio
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r, c, d
r = Target.Row
c = Target.Column
If Not Intersect(Target, [E:E]) Is Nothing Then
If r = 1 Then Exit Sub
d = Target
Call Controlla(Cells(r, 1), Cells(r, 2), Cells(r, 3), Cells(r, 4), d, r)
End If
End Sub
Modulo Standard
Sub Controlla(d1, d2, d3, d4, d5, rr)
Dim r, c, x, y, d, m1, m2, n1, k4, k5
m1 = "LAVORATO SU PIU APPALTI E IN ORARI SOVRAPPOSTI"
m2 = "ORARI SOVRAPPOSTI"
For x = 2 To Cells(Rows.Count, 1).End(xlUp).Row - 1
k4 = Cells(x, 4): k5 = Cells(x, 5)
'controlla data e dipendente
If Cells(x, 1) = d1 And Cells(x, 3) = d3 Then
n1 = ""
Application.EnableEvents = False
'controlla sovrapposizione orario stesso cantiere
If Cells(x, 2) = d2 Then
For y = k4 To k5
If y = d4 Then n1 = 1
If y = d5 Then n1 = 1
Next y
If n1 = 1 Then Cells(rr, 6) = m2
End If
'controlla cantiere ed orari sovrapposti
If Cells(x, 2) <> d2 Then
For y = k4 To k5
If y = d4 Then n1 = 1
If y = d5 Then n1 = 1
Next y
If n1 = 1 Then Cells(rr, 6) = m1
End If
End If
Next x
Application.EnableEvents = True
End Sub
Peppe fai le prove può essermi sfuggito qualcosa
allego il file
Ciao By Sal
[Modificato da by sal 29/06/2018 11:26]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie
clicca qui