Risultati da 1 a 13 di 13

Discussione: Gestione Assenza Personale



  1. #1
    L'avatar di Freddy
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Mantova
    Messaggi
    3
    Versione Office
    2007, Google
    Likes ricevuti
    0
    Likes dati
    0

    Gestione Assenza Personale

    Ecco il mio primo quesito;
    Sto' creando una gestione automatica sulle assenze/presenze del personale, ma ho alcune difficoltà nel gestire delle condizioni.

    Allego il file (con spiegazione) per farvi capire il mio concetto.

    Sempre se fattibile,
    Grazie in anticipo
    File Allegati File Allegati

  2. #2
    L'avatar di Gianfranco55
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Vicenza
    Età
    62
    Messaggi
    2072
    Versione Office
    2016
    Likes ricevuti
    553
    Likes dati
    117
    Ciao
    vedi se va bene
    lo modifichi poi come vuoi.
    Partiamo dal presupposto che la data ADESSO non può essere utilizzata come data di partenza malattia.
    la data iniziale deve essere FISSATA e non variabile altrimenti ci corriamo dietro.
    ti allego un file esempio vedi se ti piace
    File Allegati File Allegati

  3. #3

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Se nella cella E9 vuoi lasciare il menù a tendina, si può fare solo tramite VBA.
    Codice: 
    Private Sub Workbook_Open()
    With Foglio1
        If .Range("b9") + .Range("c9") / 24 < Now Then
            .Range("e9") = "Presente"
        End If
    End With
    End Sub
    P.S. Ho previsto una cella(B9) con "Data e Ora inizio assenza"

    EDIT: Scusa Gianfranco non mi ero accorto che avevi già risposto

  4. #4
    L'avatar di Gianfranco55
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Vicenza
    Età
    62
    Messaggi
    2072
    Versione Office
    2016
    Likes ricevuti
    553
    Likes dati
    117
    ciao Rubik

    e di chè:271:

    siamo arrivati alla stessa conclusione la data di partenza non può essere ADESSO()

    e nel mio file non è contemplata la convalida

  5. #5
    L'avatar di Freddy
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Mantova
    Messaggi
    3
    Versione Office
    2007, Google
    Likes ricevuti
    0
    Likes dati
    0
    eccomi,

    L'inghippo stà proprio nel discorso data ADESSO.
    Ho omesso una spiegazione:
    Devo partire dal presupposto che gli operatori che si auto-imposteranno come assenti, non conoscono Excel. Per semplificare a loro la cosa, volevo solo farli agire sul menu' a tendina "Presenze" e senza dover digitare data e ora.
    Il punto fondamentale avviene in questo momento:
    quando agiscono sul menu' a tendina (o alternativa), devo memorizzare la data e ora dell'azione (tipo congelare la funzione ADESSO), e una volta terminate le ore di assenza, il menu a tendina deve ritornare allo stato iniziale.

    nel contempo provo le vostre due soluzioni.

    Grazie

  6. #6

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Allora sicuramente VBA:
    in Questa_cartella_di_lavoro:
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("d9:d10")) Is Nothing _
        And Target.Value = "Assente" Then
            Cells(Target.Row, 2) = Now
    End If
    End Sub
    in Foglio1:
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("d9:d10")) Is Nothing _
        And Target.Value = "Assente" Then
            Cells(Target.Row, 2) = Now
    End If
    End Sub
    File Allegati File Allegati

  7. #7
    L'avatar di Gianfranco55
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Vicenza
    Età
    62
    Messaggi
    2072
    Versione Office
    2016
    Likes ricevuti
    553
    Likes dati
    117
    Ciao Rubik
    scusa ma non riesco a visualizzare
    il calcolo delle ore
    dov'è che se sono superate le 96 ore di assenza
    1) deve essere scritto PRESENTE nel menu a tendina
    2) si deve azzerare la cella con le ore di assenza
    3) si deve azzerare la cella con la data
    dov'è il codice

    o sbaglio a capire

  8. #8

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Nell'apertura del "Workbook" si avvia un ciclo sulla colonna B (data assenza dal) e se B+C (ore di assenza) è < di Adesso() cambia la colonna E in "Presente" e inserisce la formula Adesso() in B.
    Mentre con l'evento "Worksheet_Change" se in colonna D si cambia in "Assente" nella colonna B scrive (non formula ma testo) il giorno e l'orario attuale.

    EDIT: solo ora mi rendo conto che nel post #6 ho pubblicato due volte lo stesso codice, ma sul file è ok.
    Comunque il codice è:
    Codice: 
    Private Sub Workbook_Open()
    With Foglio1
        For i = 9 To 10 ' modificare secondo l'esigenza
            If .Range("b" & i) + .Range("c" & i) / 24 < Now Then
                .Range("d" & i) = "Presente"
                .Range("b" & i).Formula = "=now()"
            End If
        Next
    End With
    End Sub
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("d9:d10")) Is Nothing _
        And Target.Value = "Assente" Then
            Cells(Target.Row, 2) = Now
    End If
    End Sub

  9. #9
    L'avatar di Gianfranco55
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Vicenza
    Età
    62
    Messaggi
    2072
    Versione Office
    2016
    Likes ricevuti
    553
    Likes dati
    117
    [IMG][/IMG]Ciao

    scusa ma D10 non dovrebbe essere Assente?

    secondo me

    converrebbe fare scrivere all'operatore solo le ore
    e fare in modo che data inserimento ore e ASSENTE PRESENTE
    vengano scritti in automatico

    nel senso

    se C9 è <>""

    si attiva la macro

    D9 = assente
    B9data inserimento dato


    Tutto il calcolo che calcola le ore


    se C9="" D9 = presente
    B9=""

  10. #10

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Freddy chiedeva che l'operatore inserisse Assente e nel momento in cui lo sceglie in B10 scrive la data e l'ora. Da quel momento, all'apertura del file, si avvia la macro che calcola le ore di assenza e segna presente al superamento

    Inviato dal mio Nexus 7 utilizzando Tapatalk

  11. #11
    L'avatar di Freddy
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Mantova
    Messaggi
    3
    Versione Office
    2007, Google
    Likes ricevuti
    0
    Likes dati
    0
    Rubik ha compreso il mio problema, e tutto sembra funzionare :87:_:57:

    Mi piace!!

    Ringrazio entrambi per l'aiuto fornitomi.

  12. #12
    L'avatar di Gianfranco55
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Vicenza
    Età
    62
    Messaggi
    2072
    Versione Office
    2016
    Likes ricevuti
    553
    Likes dati
    117
    ciao
    lo so che funziona bene
    che mi intriga è che non comprendo


    For i = 9 To 10 ' modificare secondo l'esigenza
    If .Range("b" & i) + .Range("c" & i) / 24 < Now Then
    .Range("d" & i) = "Presente"
    .Range("b" & i).Formula = "=now()"
    End If

    e mi sento un pelino pirla:176:

  13. #13

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Ciao Gainfranco, la routine esegue un ciclo For... next (in questo caso per 2 volte da 9 a 10)
    Successivamente è come una formula SE
    Citazione Originariamente Scritto da Gianfranco55 Visualizza Messaggio
    If .Range("b" & i) + .Range("c" & i) / 24 < Now Then
    .Range("d" & i) = "Presente"
    .Range("b" & i).Formula = "=now()"
    End If
    Nel ciclo, la prima volta fa
    =SE(B9+C9/24;<ADESSO()..... esegui due comandi
    1) in D9 scrivi "Presente"
    2) in B9 inserisci la formula =ADESSO()

    poi riesegue il ciclo per la riga 10

Discussioni Simili

  1. Gestione turni del personale. Inserimento automatico dei dati nel calendario.
    Di CarmiCapo nel forum Domande su Excel in generale
    Risposte: 0
    Ultimo Messaggio: 12/01/17, 15:58
  2. [Risolto] ricerca personale assente
    Di marco71 nel forum Domande su Excel in generale
    Risposte: 2
    Ultimo Messaggio: 15/12/16, 18:01
  3. Forum: creare auna pagina personale sulle discussioni che interessano.
    Di Davide1969 nel forum Problemi, suggerimenti e Novità del forum
    Risposte: 7
    Ultimo Messaggio: 16/06/16, 00:26
  4. Casella di posta personale
    Di alfrimpa nel forum Problemi, suggerimenti e Novità del forum
    Risposte: 10
    Ultimo Messaggio: 02/04/16, 23:27
  5. Scusate l'assenza
    Di Max nel forum Problemi, suggerimenti e Novità del forum
    Risposte: 3
    Ultimo Messaggio: 14/10/15, 21:00

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •