Condividi:        

Excel 2007 - Gestione ore impegno macchina

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Excel 2007 - Gestione ore impegno macchina

Postdi deniel69 » 17/12/13 19:07

Salve a tutti.

Dopo aver cercato tra i vari topic ,mi vedo costretto a chiedere aiuto.

Ho creato un foglio per la gestione delle ore impiegate per completare una commessa (lavoro)
le attività da svolgere hanno dei tempi fissi.
Esempio: attività A 30 minuti ,attività B 1h 30' ,etc....
A variare sono sono l'ora di inizio dei lavori ,e cosa che non so come gestire ,la pausa pranzo
che va dalle 12:00 alle 12:30 (esempio),cosa che può incidere ovviamente tra inizio o fine delle attività (impegni macchina).

Inoltre a complicare il tutto vorrei poter gestire anche i sabati e le domeniche ,in quanto una attività può capitare
come tempo per poterla concludere , a fine orario di lavoro del venerdì per poi riprendere il lunedì)

Spero di essere stato sufficientemente chiaro ,e che qualcuno mi aiuti.

Grazie a tutti !! :( :?:
Avatar utente
deniel69
Utente Senior
 
Post: 131
Iscritto il: 17/04/12 22:43

Sponsor
 

Re: Excel 2007 - Gestione ore impegno macchina

Postdi Anthony47 » 17/12/13 22:41

Guarda questa discussione e l' uso della funzione Termine: viewtopic.php?t=98657
E' una discussione con qualche errore di troppo nei messaggi (corretti nei post successivi), ma credo che risolve il tuo caso.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel 2007 - Gestione ore impegno macchina

Postdi deniel69 » 18/12/13 12:57

Ciao Anthony, come sempre tutto perfetto.
Con ciò che mi hai suggerito ho realizzato quello che puoi vedere in foto.
Link: http: //www.4shared.com/download/DIO-eEhI/Gestione_ore_lavoro.JPG
Tutto funzionante ,ma ho 2 problemi perchè io vorrei poter gestire i turni come li vedi in foto.
Per modificare la tua macro non saprei da dove partire.
E altro problema ,come posso fare per far eseguire un refresh dei dati ad ogni variazione e non solo alla
variazione dei dati salienti (data-ora inizio o quantità e tempo x 1 pz.), in quanto se vario l'ora dei turni
per ottenere un aggiornamento devo necessariamente variare i dati salienti.

Spero tu riesca a vedere la foto ,e di seguito inserisco la macro da te costruita tempo fà.

Grazie ancora ,sei già stato molto utile !
Codice: Seleziona tutto
Function Termine(ByVal Durata As Double, ByVal via As Double, ByRef tt As Range, ByVal SabY As Integer, ByRef Holid As Range) As Double
'V 2.2 B30319
'Data una "durata" in [hh]:mm:ss, una data/ora di inizio, e un orario di lavoro,
'   calcola la data/ora di conclusione (di una attivita')
'L' orario deve essere su 4 celle adiacenti in verticale:
'  orario di inizio mattutino  (parametro tt)
'  orario di fine mattutino
'  orario inizio pom
'  orario di fine pom
'  Il secondo turno NON si considera lavorato di sabato
'
'Esempio di Uso:
'   =Termine(OreDurataTask;DataOraDiInizio;RifAlPrimoOrario;1/0 SecondoSabSi/SabNo;RangeFestivita')
'
Dim HGGstd As Double, HSab As Double, ElapTot As Double, ElapD0 As Double
Dim Interv As Double, HStart As Double, hPom As Double
Dim DDay As Integer, GSet As Integer, Extra As Double
'
If SabY <> 0 Then SabY = 1
'Calcolo ore oggi
Interv = tt.Offset(2, 0) - tt.Offset(1, 0)
HGGstd = tt.Offset(3, 0).Value - tt - tt.Offset(2, 0).Value + tt.Offset(1, 0).Value
If SabY = 1 Then HSab = tt.Offset(1, 0).Value - tt Else HSab = 0
reWD:
If (Application.WorksheetFunction.Weekday(via, 2) = 6 And SabY = 0) Then via = via + 1

HStart = via - Int(via)
If HStart < tt Then HStart = tt
If HStart > tt.Offset(3, 0) Then HStart = tt.Offset(3, 0)
If HStart > tt.Offset(1, 0) And Application.WorksheetFunction.Weekday(via, 2) = 6 Then HStart = tt.Offset(3, 0)
If HStart > tt.Offset(1, 0) And HStart < tt.Offset(2, 0) Then HStart = tt.Offset(2, 0)
If HStart > tt.Offset(3, 0) Then HStart = tt.offest(3, 0)
reHol:
If Application.WorksheetFunction.CountIf(Holid, Int(via)) > 0 Then
    via = via + 1
    HStart = tt.Value
    myHol = True
End If
If myHol = True Then myHol = False: GoTo reHol
If Application.WorksheetFunction.Weekday(via, 2) < 6 Then
    ElapD0 = tt.Offset(3, 0).Value - HStart
Else
    ElapD0 = tt.Offset(1, 0).Value - HStart
End If
If HStart < tt.Offset(2, 0) Then ElapD0 = ElapD0 - Interv
If Application.WorksheetFunction.Weekday(via, 2) = 7 Then ElapTot = 0 Else ElapTot = ElapD0
'
DDay = 1
While Round(ElapTot * 1000000) < Round(Durata * 1000000)
If Application.WorksheetFunction.CountIf(Holid, Int(via) + DDay) > 0 Then GoTo SkipF
    GSet = Application.WorksheetFunction.Weekday(via + DDay, 2)
    If GSet < 6 Then ElapTot = ElapTot + HGGstd
    If GSet = 6 Then ElapTot = ElapTot + HSab
SkipF:
    DDay = DDay + 1
    If DDay > 1000 Then ElapTot = Durata
Wend
If GSet = 6 Then hPom = tt.Offset(1, 0) - tt Else hPom = tt.Offset(3, 0) - tt.Offset(2, 0)
Extra = Round(ElapTot * 1000000 - Durata * 1000000) / 1000000
If Extra > hPom Then Extra = ElapTot - Durata + Interv 'Else Extra = ElapTot - Durata
Termine = Int(via) + DDay - 1 + tt.Offset(3, 0) - Extra
If Application.WorksheetFunction.Weekday(via + DDay - 1, 2) = 6 Then Termine = Termine - (tt.Offset(3, 0) - tt.Offset(2, 0) + Interv)
'
End Function
Avatar utente
deniel69
Utente Senior
 
Post: 131
Iscritto il: 17/04/12 22:43

Re: Excel 2007 - Gestione ore impegno macchina

Postdi deniel69 » 18/12/13 13:25

Ciao Anthony47 , per quanto riguarda il refresh dei dati ho risolto semplicemente con un pulsante
con la macro che segue assegnatagli.

:lol: per l'altro problema sono ancora in panne!! :eeh:


Codice: Seleziona tutto
Sub Refresh()
'
    Range("B2:E9").Select
    ActiveWorkbook.Worksheets("Foglio1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Foglio1").Sort.SortFields.Add Key:=Range("C3:C9"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Foglio1").Sort
        .SetRange Range("B2:E9")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
Avatar utente
deniel69
Utente Senior
 
Post: 131
Iscritto il: 17/04/12 22:43

Re: Excel 2007 - Gestione ore impegno macchina

Postdi Anthony47 » 18/12/13 14:47

L' immagine non e' visibile, prova a ripubblicare il link controllando il funzionamento, ma meglio se carichi su imageshak.us

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel 2007 - Gestione ore impegno macchina

Postdi deniel69 » 18/12/13 15:53

Avatar utente
deniel69
Utente Senior
 
Post: 131
Iscritto il: 17/04/12 22:43

Re: Excel 2007 - Gestione ore impegno macchina

Postdi deniel69 » 21/12/13 12:55

Aiutooooo!

Nessuno mi può aiutare.... il problema è sempre lo stesso ,attualmente con la macro fatta da Anthony47 tempo fa
riesco a gestire 4 orari relativi ai turni ,mentre io vorrei poterne gestire 8.

Come devo modificare la macro di Anthony47?

Grazie e Buone feste a tutti!!! :)
Avatar utente
deniel69
Utente Senior
 
Post: 131
Iscritto il: 17/04/12 22:43

Re: Excel 2007 - Gestione ore impegno macchina

Postdi Anthony47 » 23/12/13 01:36

Ho aggiornato la funzione termine con una nuova versione, che ho pubblicato nella discussione che ti avevo linkato, cioe: viewtopic.php?f=26&t=98657&p=582449#p582449

Credo che risponda alla tua domanda.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel 2007 - Gestione ore impegno macchina

Postdi deniel69 » 23/12/13 14:29

Ciao a tutti .

Come sempre siete i migliori...... un grazie particolare a Anthony47 ,che come sempre
mi ha risolto un bel po di problemi.

Sono già al lavoro con il nuovo codice ,OTTIMO.

Spero quanto prima di poter condividere il lavoro finito e funzionante...

Ancora grazie :lol:
Avatar utente
deniel69
Utente Senior
 
Post: 131
Iscritto il: 17/04/12 22:43

Re: Excel 2007 - Gestione ore impegno macchina

Postdi deniel69 » 01/01/14 19:06

Salve a tutti e un grosso augurio di un felice anno nuovo !

Come promesso ecco il link al file definitivo e funzionante ,che grazie a Voi sono riuscito a mettere insieme.

http://rapidshare.com/share/5A84EA26BBF ... 85FEC83D30

Spero sia utile a qualcuno ,anche se magari solo parzialmente.

Grazie ancora! :lol: 8)
Avatar utente
deniel69
Utente Senior
 
Post: 131
Iscritto il: 17/04/12 22:43

Re: Excel 2007 - Gestione ore impegno macchina

Postdi raimea » 01/01/14 19:39

ciao
il link sopra non porta a nessun file :?:
ciao
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1410
Iscritto il: 11/02/10 07:33
Località: lago

Re: Excel 2007 - Gestione ore impegno macchina

Postdi Anthony47 » 01/01/14 23:26

A me il file risulta accessibile: il link porta a una pagina introduttiva di rapidshare, ma premendo "to Download" il file diventa visibile, puo' essere selezionato e quindi scaricato. Senza bisogno di registrarsi o di loggarsi su rapidshare.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel 2007 - Gestione ore impegno macchina

Postdi raimea » 02/01/14 07:27

ciao
con I.E. il link porta ad una pagina semi bianca e non si vede poco/nulla.

con crome ha aperto correttamente la pagina e si trova il dounload

grazie
ciao
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1410
Iscritto il: 11/02/10 07:33
Località: lago

Re: Excel 2007 - Gestione ore impegno macchina

Postdi Flash30005 » 02/01/14 09:35

Io non uso altri browser al di fuori di IE e l'ho scaricato benissimo.
Purtroppo quando si installano browser (specialmente Chorme) IE non funziona più bene come all'origine.
Non sei il primo ad accusare queste anomalie come, anche, la lentezza di IE

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "Excel 2007 - Gestione ore impegno macchina":


Chi c’è in linea

Visitano il forum: Nessuno e 33 ospiti