Uso Excel 2013, con le formule non me la cavo molto bene se non per le basi, invece con il vba riesco a cavarmela mediamente
scorrendo il forum ho visto che riuscite a risolvere molti problemi riguardo Excel, in tal proposito ho un problema che sono giorni che non riesco a risolvere.
la materia più ostica di Excel date ed orari.
ho del personale che lavora in più cantieri, a volte lo stesso, ed hanno un orario di entrata ed uno di uscita, non ci sono pause pranzo.
il mio problema che dovrei riuscire ad evidenziare con messaggi se ci sono accavallamenti di presenze, cioè la stessa persona non può nello stesso giorno lavorato nello stesso cantiere o altro cantiere con orari accavallati, cioè presente nello stesso momento in posti uguali o diversi, esempio
il 25/6/18 giovanni ha lavorato al cantiere1 entrato alle 12,30 ed uscito alle 15.50
il 25/6/18 giovanni ha lavorato al cantiere2 entrato alle 10.50 ad uscito alle 14.20
altri orari vanno oltre le 24 superano la mezzanotte per l'uscita
come si vede ce un accavallamento di orario nelle presenze dalle 12,30 alle 14,20
per finire di complicare le cose la persona che riporta l'entrata e le uscite scrive gli orari come decimali non in formato orario, cioè 12virgola30.
sono riuscito con il vba anche se a parer mio non funziona troppo bene, alcune volte non da l'orario giusto ma non capisco perche, non sono riuscito a trovare la conversione giusta, ma in linea di max funziona, trasformare 12,30 i orario 12:30.
ora inserendo un nuovo orario, con l'evento "Change" parte la macro che controlla tutti i precedenti orari con l'attuale inserito se ci sono accavallamenti di ore, e questo non riesco a farlo evidenziare se non in parte, perche controllando alcuni orari non li evidenzia
Questo un esempio orari in giallo il secondo giallo ha un orario accavallato
immagin
allego anche il file con le macro che ho usato
il problema è questo confronto con le date che non riesco ad ottenere
- Codice: Seleziona tutto
If da4 >= ka4 And da5 <= ka5 Then 'And da4 <= ka5 Then
Cells(rr, 7) = m1
k = 1
End If
il file
http://www.filedropper.com/provapresenze2
Ciao jSat