Non sapendo che cosa dovrebbe realizzare quella macro e leggendo i termini del problema vado necessariamente a occhio...
All' inizio della macro Minuti hai queste istruzioni:
- Codice: Seleziona tutto
'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 AG > 1 Then F = VBA.Int((AG) * 24) Else F = VBA.Hour(AG)
If AH > 1 Then G = VBA.Int((AH) * 24) Else G = VBA.Hour(AH)
If AI > 1 Then H = VBA.Int((AI) * 24) Else H = VBA.Hour(AI)
Se guardi l' istruzione
If AH > 1 Then G = VBA.Int((AH) * 24) Else G = VBA.Hour(AH) ti accorgerai che 24h:00m, che corrisponde (nell' impostazione di excel) al valore "1", come risultato del test sara' negativo, e in G (G10) saranno inserire solo le ore di AH (AH31), che (sempre per come le date e le ore sono considerate in excel) sono invece 0; 24:00 infatti corrisponde alle ore 0 del "giorno dopo".
Quindi quella riga in ragionevolmente deve diventare
- Codice: Seleziona tutto
If AH >= 1 Then G = VBA.Int((AH) * 24) Else G = VBA.Hour(AH)
Presumo che lo stesso discorso vale anche per If AG > 1 e If AI > 1, oltre che per tutti gli altri "Case" che compongono la macro.
Credo comunque sia meglio chiedere all' autore del programma una revisione delle macro sulla base di tutte le evidenze che sono emerse ultimamente.
Ciao