rollis per favore vedi se ho modificato bene il codice "minuti"...ne ho fatto solo un pezzo se mi confermi che ho capito bene lo faccio tutto.
Per quanto riguarda le celle occupate ho fatto il lavoro che mi hai suggerito ed effettivamente il file è diventato molto piu piccolo.
Pero adesso rileggendo le tue indicazioni vedo che hai scritto di selezionare le colonne e celle ed “elimina” mentre il ho fatto con il tasto “canc” credo sia lo stesso visto che il file si è ridotto..se puoi darmi una conferma altrimenti rifaccio il lavoro con “elimina”
Mentre non ho capito bene questo
“Poi ci sono alcune celle che sembrano vuote ma in realtà non lo sono. Molti post fa ne avevo riscontrate diverse ma ora non ho nessuna intensione di cercarle nuovamente; te ne accorgi quando in alcune righe fai un'operazione e la stessa non va a buon fine mentre in altre righe funziona benissimo.”
Se mi fai fare un esempio.
grazie
Sub minuti() ' questo codice si avvia con il rigo fine call minuti che si trova nel this workbook
Dim AG As Range
Dim AH As Range
Dim AI As Range
Dim F As Range
Dim G As Range
Dim H As Range
Dim vero As Boolean
Set AG = ThisWorkbook.ActiveSheet.Range("AG31")
Set AH = ThisWorkbook.ActiveSheet.Range("AH31")
Set AI = ThisWorkbook.ActiveSheet.Range("AI31")
Set F = ThisWorkbook.ActiveSheet.Range("F10")
Set G = ThisWorkbook.ActiveSheet.Range("G10")
Set H = ThisWorkbook.ActiveSheet.Range("H10")
vero = False
If ActiveSheet.Name = "RIEP" Then vero = True
If Not vero Then
Select Case True
'SE LA SOMMA DEI MINUTI DELLE 3 CELLE SONO MINORI O UGUALI A 30 NON FARE NULLA
Case VBA.Minute(AG) + VBA.Minute(AH) + VBA.Minute(AI) <= 30
Application.EnableEvents = False
If Round(AG, 14) >= 1 Then F = Round(AG, 14) * 24 Else F = VBA.Hour(AG)
If Round(AH, 14) >= 1 Then G = Round(AH, 14) * 24 Else G = VBA.Hour(AH)
If Round(AI, 14) >= 1 Then H = Round(AI, 14) * 24 Else H = VBA.Hour(AI)
Case VBA.Minute(AG) = 0 _
And VBA.Minute(AH) > 30 _
And VBA.Minute(AI) > 30 _
And VBA.Minute(AH) + VBA.Minute(AI) < 90
Application.EnableEvents = true
If Round(AG, 14) >= 1 Then F = Round(AG, 14) * 24 Else F = VBA.Hour(AG)
If Round(AH, 14) >= 1 Then G = Round(AH, 14) * 24 Else G = VBA.Hour(AH)
If Round(AI, 14) >= 1 Then H = Round(AI, 14) * 24 + 1 Else H = VBA.Hour(AI) + 1
Case VBA.Minute(AG) = 0 _
And VBA.Minute(AH) > 30 _
And VBA.Minute(AI) > 30 _
And VBA.Minute(AH) + VBA.Minute(AI) > 90
Application.EnableEvents = False
If Round(AG, 14) >= 1 Then F = Round(AG, 14) * 24 Else F = VBA.Hour(AG)
If Round(AH, 14) >= 1 Then G = Round(AH, 14) * 24 + 1 Else G = VBA.Hour(AH) + 1
If Round(AI, 14) >= 1 Then H = Round(AI, 14) * 24 + 1 Else H = VBA.Hour(AI) + 1
'SE LA SOMMA DEI MINUTI DELLA 1ª E 2ª CELLA SONO MAGGIORI DI 30,
'MA MINORE O UGUALE A 90 E I MINUTI DELLA 1ª CELLA SONO
'MAGGIORI O UGUALI ALLA 2ª CELLA INCREMENTA LA 1ª CELLA DI 1 ORA
Case VBA.Minute(AG) > 0 _
And VBA.Minute(AH) > 0 _
And VBA.Minute(AI) = 0 _
And VBA.Minute(AG) >= VBA.Minute(AH) _
And VBA.Minute(AG) + VBA.Minute(AH) > 30 _
And VBA.Minute(AG) + VBA.Minute(AH) <= 90
Application.EnableEvents = true
If Round(AG, 14) >= 1 Then F = Round(AG, 14) * 24 + 1 Else F = VBA.Hour(AG) + 1
If Round(AH, 14) >= 1 Then G = Round(AH, 14) * 24 Else G = VBA.Hour(AH)
If Round(AI, 14) >= 1 Then H = Round(AI, 14) * 24 Else H = VBA.Hour(AI)
'SE LA SOMMA DEI MINUTI DELLA 1ª E 2ª CELLA SONO MAGGIORI DI 30,
'MA MINORE O UGUALE A 90 E I MINUTI DELLA 1ª CELLA SONO
'MINORI ALLA 2ª CELLA INCREMENTA LA 2ª CELLA DI 1 ORA
Case VBA.Minute(AG) > 0 _
And VBA.Minute(AH) > 0 _
And VBA.Minute(AI) = 0 _
And VBA.Minute(AG) < VBA.Minute(AH) _
And VBA.Minute(AG) + VBA.Minute(AH) > 30 _
And VBA.Minute(AG) + VBA.Minute(AH) <= 90
Application.EnableEvents = False
If Round(AG, 14) >= 1 Then F = Round(AG, 14) * 24 Else F = VBA.Hour(AG)
If Round(AH, 14) >= 1 Then G = Round(AH, 14) * 24 + 1 Else G = VBA.Hour(AH) + 1
If Round(AI, 14) >= 1 Then H = Round(AI, 14) * 24 Else H = VBA.Hour(AI)
'SE LA SOMMA DEI MINUTI DELLA 1ª E 2ª CELLA SONO MAGGIORI DI 90,
'MA MINORE O UGUALE A 120 E I MINUTI DELLA 1ª CELLA SONO
'MINORI ALLA 2ª CELLA INCREMENTA LA 1ª E LA 2ª CELLA DI 1 ORA
Case VBA.Minute(AG) > 0 _
And VBA.Minute(AH) > 0 _
And VBA.Minute(AI) = 0 _
And VBA.Minute(AG) < VBA.Minute(AH) _
And VBA.Minute(AG) + VBA.Minute(AH) > 90 _
And VBA.Minute(AG) + VBA.Minute(AH) <= 120
Application.EnableEvents = true
If Round(AG, 14) >= 1 Then F = Round(AG, 14) * 24 + 1 Else F = VBA.Hour(AG) + 1
If Round(AH, 14) >= 1 Then G = Round(AH, 14) * 24 + 1 Else G = VBA.Hour(AH) + 1
If Round(AI, 14) >= 1 Then H = Round(AI, 14) * 24 Else H = VBA.Hour(AI)
'SE LA SOMMA DEI MINUTI DELLA 1ª E 3ª CELLA SONO MAGGIORI DI 30,
'MA MINORE O UGUALE A 90 E I MINUTI DELLA 1ª CELLA SONO
'MAGGIORI O UGUALI ALLA 3ª CELLA INCREMENTA LA 2ª CELLA DI 1 ORA
Case VBA.Minute(AG) > 0 _
And VBA.Minute(AH) = 0 _
And VBA.Minute(AI) > 0 _
And VBA.Minute(AG) >= VBA.Minute(AI) _
And VBA.Minute(AG) + VBA.Minute(AI) > 30 _
And VBA.Minute(AG) + VBA.Minute(AI) <= 90
Application.EnableEvents = False
If Round(AG, 14) >= 1 Then F = Round(AG, 14) * 24 Else F = VBA.Hour(AG)
If Round(AH, 14) >= 1 Then G = Round(AH, 14) * 24 + 1 Else G = VBA.Hour(AH) + 1
If Round(AI, 14) >= 1 Then H = Round(AI, 14) * 24 Else H = VBA.Hour(AI)
'SE LA SOMMA DEI MINUTI DELLA 1ª E 3ª CELLA SONO MAGGIORI DI 30,
'MA MINORE O UGUALE A 90 E I MINUTI DELLA 1ª CELLA SONO
'MINORI ALLA 3ª CELLA INCREMENTA LA 3ª CELLA DI 1 ORA
Case VBA.Minute(AG) > 0 _
And VBA.Minute(AH) = 0 _
And VBA.Minute(AI) > 0 _
And VBA.Minute(AG) < VBA.Minute(AI) _
And VBA.Minute(AG) + VBA.Minute(AI) > 30 _
And VBA.Minute(AG) + VBA.Minute(AI) <= 90
Application.EnableEvents = true
If Round(AG, 14) >= 1 Then F = Round(AG, 14) * 24 Else F = VBA.Hour(AG)
If Round(AH, 14) >= 1 Then G = Round(AH, 14) * 24 Else G = VBA.Hour(AH)
If Round(AI, 14) >= 1 Then H = Round(AI, 14) * 24 + 1 Else H = VBA.Hour(AI) + 1
'SE LA SOMMA DEI MINUTI DELLA 1ª E 3ª CELLA SONO MAGGIORI DI 90,
'MA MINORE O UGUALE A 120 E I MINUTI DELLA 1ª CELLA SONO
'MINORI O UGUALI ALLA 3ª CELLA INCREMENTA LA 2ª E LA 3ª CELLA DI 1 ORA
Case VBA.Minute(AG) > 0 _
And VBA.Minute(AH) = 0 _
And VBA.Minute(AI) > 0 _
And VBA.Minute(AG) <= VBA.Minute(AI) _
And VBA.Minute(AG) + VBA.Minute(AI) > 90 _
And VBA.Minute(AG) + VBA.Minute(AI) <= 120
Application.EnableEvents = False
If Round(AG, 14) >= 1 Then F = Round(AG, 14) * 24 Else F = VBA.Hour(AG)
If Round(AH, 14) >= 1 Then G = Round(AH, 14) * 24 + 1 Else G = VBA.Hour(AH) + 1
If Round(AI, 14) >= 1 Then H = Round(AI, 14) * 24 + 1 Else H = VBA.Hour(AI) + 1
[Modificato da trittico69 31/01/2018 08:26]
excel 2003