Intervalli di tempo...
 
Notifiche
Cancella tutti

La consultazione del forum è libera per tutti.

Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).

Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.

[Risolto] Intervalli di tempo lavorato in coppia

27 Post
2 Utenti
2 Reactions
1,511 Visualizzazioni
Forum 1
(@davide)
Post: 0
New Member
Avviatore di Topic
 

Buonasera agli utenti, sono Davide e avrei la necessità di conoscere quanto tempo passano due persone che lavorano insieme ad uno stesso ordine. Grazie.

 

Versione di Excel
Sistema operativo
 
Postato : 07/02/2021 17:43
cromagno
(@cromagno)
Post: 0
Moderatore
 

Ciao, sto guardando dal cell ma credo che dovresti allegare un file con piú casistiche.
Da quel che ho capito, la situazione del tuo esempio va bene in quanto ci sono al massimo 2 operatori che si accavallano... dovresti aggiungere qualche altro caso, magari con 3 (o piú) operatori che si accavallano e mettere manualmente il risultato che vorresti avere.

 
Postato : 08/02/2021 11:25
Forum 1
(@davide)
Post: 0
New Member
Avviatore di Topic
 

@cromagno

Ciao,
non credo di aver capito, nel senso che più di due operatori non possono accavallarsi con lo stesso ordine e nella stessa data/ora, invece possono esserci più di due operatori, in coppia o singoli, che lavorano sullo stesso ordine ma in date/orari diversi e senza accavvallarsi.

Grazie

 
Postato : 08/02/2021 19:34
cromagno
(@cromagno)
Post: 0
Moderatore
 

Appunto....
ti chiedo quale riscontro/controllo vorresti nel caso si verificasse che più di due operatori siano nello stesso orario per lo stesso ordine.

 
Postato : 08/02/2021 19:36
cromagno
(@cromagno)
Post: 0
Moderatore
 

@davide
per essere chiari...
Con l'esempio che hai postato è relativamente semplice creare una formula, magari con una colonna d'appoggio, per ricreare quello che tu hai scritto manualmente ma non credo che la tua situazione reale sia così semplice quindi... prima di impelagarsi in formule astruse preferirei avere uno scenario più completo.

 
Postato : 08/02/2021 19:40
Forum 1
(@davide)
Post: 0
New Member
Avviatore di Topic
 

@cromagno

ok ci sono: in teoria non possono esserci più di due operatori sullo stesso ordine e nello stesso orario, se si verificasse questo caso sarebbe un errore da parte degli stessi operatori e la formula potrebbe restituire l'avvertimento "attenzione più di due operatori sulla stessa postazione".

 

grazie.

 
Postato : 08/02/2021 20:48
cromagno
(@cromagno)
Post: 0
Moderatore
 

Il nuovo file alla fine non l'hai mandato...
Ho avuto poco tempo per metterci mano ma direi che la cosa più "sensata" è far fare un controllo tramite VBA.
Se ti va bene così, domani o al massimo dopodomani potrò buttar giù qualcosa.

P.S.
Se il file orifinale ha una struttura diversa da quello che hai allegato, allegane un altro, specialmente se sei poco pratico di VBA.

 
Postato : 09/02/2021 19:14
Forum 1
(@davide)
Post: 0
New Member
Avviatore di Topic
 

@cromagno

ciao, preferisco aspettare per inserire una parte del file "originale" così il lavoro avrà sicuramente un risultato migliore, come mi hai consigliato.

 

Grazie.

 
Postato : 09/02/2021 20:48
cromagno
(@cromagno)
Post: 0
Moderatore
 

@davide
ok... aspetterò il file "definitivo"

 
Postato : 09/02/2021 20:55
Forum 1
(@davide)
Post: 0
New Member
Avviatore di Topic
 

@cromagno

buonasera, il nuovo file è completo e definitivo per essere elaborato dal VBA.

 

Grazie.

 
Postato : 10/02/2021 18:17
cromagno
(@cromagno)
Post: 0
Moderatore
 
Postato da: @davide

buonasera, il nuovo file è completo e definitivo per essere elaborato dal VBA.

Ok, ma non capisco il nuovo file...

Se è questione di ottenere un elenco con le sovrapposizioni allora ok ma se c'è altro mi spiace ma il lavoro si allunga e non ho tutto quel tempo da dedicargli.
Quali campi si dovrebbero eventualmente riempire con VBA?

 
Postato : 10/02/2021 20:05
Forum 1
(@davide)
Post: 0
New Member
Avviatore di Topic
 

@cromagno

si dovrebbero riempire i campi nelle colonne E e F, cioè la coppia col numero degli operatori e il tempo che hanno passato in sovapposizione, il "simil Gantt" era per chiarire ulteriormente il concetto, qualore ce ne fosse la necesssità.

 

Grazie.

 
Postato : 10/02/2021 20:34
cromagno
(@cromagno)
Post: 0
Moderatore
 

@davide

scusa ma in questi giorni il tempo è quel che è...
Prova con questo codice in un modulo standard (associato al pulsante Controlla Sovrapposizioni ):

Option Explicit

Sub CheckOperators()
    Dim LRow As Long
    Dim ArrOrigin
    Dim i As Long
    Dim j As Long
    Dim k As Double
    Dim OrdDataOper
    Dim AppSplit
    Dim NrOrder As Variant
    Dim Operators As String
    Dim ActData As String
    Dim StartHour As Double
    Dim EndHour As Double
    Dim AppArray()
    
    LRow = Range("A" & Rows.Count).End(xlUp).Row
    If LRow > 2 Then
        ArrOrigin = Range("A3:C" & LRow)
        ReDim AppArray(1 To UBound(ArrOrigin, 1), 1 To 2)
        For i = 1 To UBound(ArrOrigin, 1)
            OrdDataOper = Split(ArrOrigin(i, 1), "-")
            NrOrder = OrdDataOper(0)
            ActData = OrdDataOper(1)
            Operators = OrdDataOper(2)
            StartHour = ArrOrigin(i, 2)
            EndHour = ArrOrigin(i, 3)
            
            If i + 1 < UBound(ArrOrigin, 1) Then
                For j = i + 1 To UBound(ArrOrigin, 1)
                    AppSplit = Split(ArrOrigin(j, 1), "-")
                    If AppSplit(0) = NrOrder Then
                        If (ArrOrigin(j, 2) <= StartHour And ArrOrigin(j, 3) >= StartHour _
                            And ArrOrigin(j, 3) <= EndHour) Then
                            AppArray(j, 2) = ArrOrigin(j, 3) - StartHour
                        ElseIf (ArrOrigin(j, 2) >= StartHour And ArrOrigin(j, 3) <= EndHour) Then
                            AppArray(j, 2) = ArrOrigin(j, 3) - ArrOrigin(j, 2)
                        ElseIf (ArrOrigin(j, 2) <= EndHour And ArrOrigin(j, 3) >= EndHour) Then
                            AppArray(j, 2) = EndHour - ArrOrigin(j, 2)
                        ElseIf (ArrOrigin(j, 2) <= StartHour And ArrOrigin(j, 3) >= EndHour) Then
                            AppArray(j, 2) = EndHour - StartHour
                        End If
                    End If
                    
                    If Len(AppArray(j, 2)) > 0 Then
                        AppArray(j, 1) = Operators & "-" & AppSplit(2)
                    End If
                Next j
            End If
        Next i
        ArrOrigin = AppArray
        Range("E3").Resize(UBound(ArrOrigin, 1), 2).Value = ArrOrigin
        MsgBox "Controllo eseguito.", vbInformation + vbOKOnly, "OPERAZIONE COMPLETATA"
    End If
End Sub

 
Postato : 12/02/2021 02:15
Forum 1
(@davide)
Post: 0
New Member
Avviatore di Topic
 

@cromagno

Buongiorno, lo proverò oggi. Grazie mille.

 
Postato : 12/02/2021 07:04
Forum 1
(@davide)
Post: 0
New Member
Avviatore di Topic
 

Buonasera Cromagno,

semplicemente fantastico, grazie grazie!

Ora lo metterò alla prova con i vero file.

 

Buona serata.

 
Postato : 12/02/2021 19:28
cromagno and cromagno reacted
Pagina 1 / 2
Condividi:
My Agile Privacy
Questo sito utilizza cookie tecnici e di profilazione. Cliccando su accetta si autorizzano tutti i cookie di profilazione. Cliccando su rifiuta o la X si rifiutano tutti i cookie di profilazione. Cliccando su personalizza è possibile selezionare quali cookie di profilazione attivare.
Attenzione: alcune funzionalità di questa pagina potrebbero essere bloccate a seguito delle tue scelte privacy
     Scarica il nostro ebook gratuito     

Unisciti a oltre 35.000 professionisti
che hanno già scelto di semplificare il proprio lavoro
e aumentare la produttività con la nostra newsletter!

Scarica l’ebook con i
migliori trucchi e suggerimenti per Excel
selezionati per te da Excel Academy

Download