Sottrarre l'ora per la pausa pranzo

Anonimo
2014-10-05T20:25:10+00:00

Ciao gente,

per monitorare i miei orari lavorativi mi sono costruito una semplice macro con due pulsantini: uno inserisce la data di oggi e l'orario d'ingresso e l'altro l'orario di uscita e la differenza tra i due.

quello che non riesco a fare è far sottrarre ai due orari un'ora per la pausa pranzo. Se la macro calcola semplicemente C2-D2 dà la differenza corretta, se inserisco nella formula "-VALORE("01:00") oppure -60/(60*24) mi restituisce una sfilza di asterischi.

Per la cronaca: data e orari sono ottenuti con la funzione ADESSO() inserita in STRINGA.ESTRAI() e concatenando il tutto con i vari MESE(), ANNO(), ORE() ecc.

Se lo facevo con CTRL+SHIFT+; (punto e virgola) la macro lo registrava come testo e non come "formula". Se poi c'è un modo più intelligente ditemelo XD

Il file è qui: http://1drv.ms/1xerKAe

Ora è impostato senza fare la differenza, ma potete verificare facilmente che vi restituisce errore.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2014-10-06T07:11:33+00:00

Ciao gente,

per monitorare i miei orari lavorativi mi sono costruito una semplice macro con due pulsantini: uno inserisce la data di oggi e l'orario d'ingresso e l'altro l'orario di uscita e la differenza tra i due.

<cut>

A1: 09:00

A2: 18:00

A3: (A2-A1)-ORARIO(1;0;0)   <<=== Risultato: 08:00

A seconda di come è settato il separatore di ore/minuti/secondi nelle impostazioni di Windows, potrebbe essere necessario modificare i : (due punti) co il . (punto).

Se invece vuoi una macro (sempre se ho capito):

Public Sub m()

    Dim sh As Worksheet

    Dim d As Date

    Set sh = ThisWorkbook.Worksheets("Foglio1")

    With sh

       d = .Range("A1").Value - .Range("A2").Value

       MsgBox Format(d, "hh") - 1

    End With

    Set sh = Nothing

End Sub

La risposta è stata utile?

4 persone hanno trovato utile questa risposta.
0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2014-10-06T07:35:52+00:00

per calcolare la differenza fra due ore in ore intere usa la funzione ora e poi togli 1 al risultato per la pausa pranzo. Ricorda di applicare alla cella un formato generale e non un formato ora.

Poi in una altra cella potrai calcolare la differenza in minuti residui con la funzione MINUTO.

Ti creato un esempio qua

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2014-10-06T21:40:30+00:00

    Ok, ci sono.

    Prima gli facevo formattare le celle in formato ora, adesso gliele faccio formattare come Generale e sottraendo VALORE("01:00") riesco a depurare il tempo trascorso dall'ora di pausa pranzo.

    Grazie mille per l'aiuto ragazzi!

    La risposta è stata utile?

    0 commenti Nessun commento