Excel Forum Per condividere esperienze su Microsoft Excel

impegni produzione officina

  • Messaggi
  • OFFLINE
    Likan85
    Post: 2
    Registrato il: 10/07/2018
    Città: ZANICA
    Età: 39
    Utente Junior
    2013
    00 10/07/2018 15:36
    Buongiorno,
    ho la necessità di realizzare un file Excel che mi aiuti a capire gli impegni nel tempo degli ordini arrivati dai clienti. Partendo dal foglio1 con una tabella elenco in cui viene inserito il codice ordine interno (commessa), data ordine , data consegna prevista, cliente, mi serve che questo elenco venga riportato in automatico nel foglio 2 dove inizia la parte a me complicata nel foglio 2 ho bisogno di riportare le commesse e ottenere su di un calendario (Fatto dalle colonne) una X evidenziata sulla data di consegna. (questa parte l'ho fatta nel modo che conosco non so se va bene o si può migliorare).


    La parte che non so assolutamente fare è :
    ci sono 4 colonne dove verranno inserite le ore previste di assemblaggio, di saldatura , gli eventuali ritardi espressi pensavo in gg, e il tempo in gg che ci mette il fornitore a mandarmi il materiale per iniziare a costruire.

    quello che non so fare è fare in modo che data la data X di consegna richiesta sulla tabella calendario vengano evidenziati anche questi parametri sopra citati in modo da ottenere a grandi linee l'impegno officina.

    ammesso che quanto sopra descritto sia semplice per voi che Excel lo conoscete sicuramente meglio di me, è possibile inserire da qualche parte anche le ore per mese impegnate da assemblaggio e saldatura?
    allego bozza del file che ho creato e in cui mi son bloccato.

    ringrazio per l'eventuale aiuto che mi offrirete.

    [Modificato da Likan85 11/07/2018 08:02]
  • OFFLINE
    raffaele1953
    Post: 3.599
    Registrato il: 28/06/2011
    Città: AGORDO
    Età: 70
    Utente Master
    2013
    00 11/07/2018 01:34
    Premesso che quando ricevi una NUOVA "commessa", Tu stai già svolgendo altri lavori.
    Subito fai l'ordine del materiale e se "questo" arriva dopo due giorni. La probabile data_inizio, sarà data_ordine + 2 giorni. Quando "arriva il materiale" sicuramente, starai facendo ancora altri lavori, pertanto la vera data_inizio sarà quando hai finito i lavori precedenti. Giusto?

    In teoria chiedi, di calcolare in quale giorno+orario finisci di fare "ogni commessa". Giusto?
    Non è facile, mà ci provo. Posso modificare il files come desidero?
    [Modificato da raffaele1953 11/07/2018 01:36]
    Excel 2013
  • OFFLINE
    Likan85
    Post: 2
    Registrato il: 10/07/2018
    Città: ZANICA
    Età: 39
    Utente Junior
    2013
    00 11/07/2018 07:53
    Ciao Raffaele,
    ti faccio un esempio
    arriva ordine oggi 11/7 consegna 10/8 so che nel preventivo sono state previste 8 ore di assemblaggio e 6 ore saldatura, so che di media il fornitore per fornirmi il materiale da assemblare ci mette 5 giorni. quindi il file mi indicherà che dal 10/8 giorno in cui il materiale deve essere consegnato, a ritroso vedrò che il giorno prima 09/08 avrò da fare saldare, il giorno 08/08 avrò da assemblare e il 1° di agosto il fornitore deve cominciare a tagliare ( così con una telefonata posso verificare l'effettiva messa in taglio). nel caso in cui ci sia un imprevisto per il quale la consegna non possa essere quella richiesta a causa di un ritardo a quel punto segnando i giorni di ritardo avrò un occhio sulla riprogrammazione a grandi linee dell'ordine per poter avvisare il cliente.
    avendo in officina più persone posso gestire x ore al mese di lavoro contemporaneamente (per quello ho chiesto se per mese era possibile avere la quantità totale accumulata delle ore di lavorazione per assemblaggio e quelle per saldatura.
    comunque si modifica pure il file come meglio ritieni per ottenere quanto richiesto, magari riesci a semplificarlo pure.
    grazie
    [Modificato da Likan85 11/07/2018 07:54]
  • OFFLINE
    raffaele1953
    Post: 3.602
    Registrato il: 28/06/2011
    Città: AGORDO
    Età: 70
    Utente Master
    2013
    00 11/07/2018 15:39
    Mi sembra di capire che la data da cercare sarebbe a ritroso? Dalla DATA_CONSEGNA_RICHIESTA ad cercare la data_iniziale_lavori.

    Per me, il Tuo pensiero è una grossa cavolata (difficile da gestire per me)
    Nel Foglio4, premi il bottone e NOTA in J12 la Data giusta (nelle altre non capisco nulla)

    Inoltre vedi foglio1 il calendario perpetuo+ferie
    A riguardo le ore, esiste pure il =MATR.SOMMA.PRODOTTO(), nel Tuo caso, non sarà mai esatto (tranne nel stesso mese)

    NB, Vedi foglio1, la colonna E = Urgenze
    Stavo pensando al VBA, gestire TUTTE le "commesse", ordinarle ed eseguirle.
    Difficile anche per me, mà forse non ho capito bene il tutto.

    Mi sembra "dico" sembra, che per un mese "giri i pollici".
    Poi ad una data precisa fai tutto con le diverse "commesse"? Impossibile
    Excel 2013
  • OFFLINE
    Likan85
    Post: 3
    Registrato il: 10/07/2018
    Città: ZANICA
    Età: 39
    Utente Junior
    2013
    00 11/07/2018 17:33
    Ciao,ti ringrazio per il file, probabilmente mi sono espresso male io.
    io devo solo evidenziare nella tabella in base ai numeri che inserisco le caselle.
    Ti allego file con esempio.
    grazie
  • OFFLINE
    raffaele1953
    Post: 3.605
    Registrato il: 28/06/2011
    Città: AGORDO
    Età: 70
    Utente Master
    2013
    00 11/07/2018 17:42
    Come desideri Tu, io non riesco. Auguri
    Excel 2013
  • OFFLINE
    GiuseppeMN
    Post: 3.076
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 11/07/2018 23:33
    Buona sera, Likan85;
    quello che ti propongo è una gestione molto diversa dalla tua richiesta.

    Pensando di gestire la Commessa "C_18_002" avremo:
    Commessa                    C_18_002
    Data Ordine                -- -giovedì - 11/01/2018
    Data consegna prevista    vennerdì - 02/02/2018
    Cliente                    -       Luca
    Valore Commessa            1.677,00 €
    Tempo approvvigionamento materiale (gg)   6 gg
    Ritardo consegna                            -          1 gg
    Ore previste assemblaggio                     -   5 hh
    Ore previste saldatura                       -      12 hh

    Nel Foglio di lavoro "Commessa" avremo la gestione delle lavorazioni; ho considerato che l'ultimazione delle lavorazioni avvenga il giorno precedente a quello nel quale è prevista la consegna al Cliente.
    Ho considerato che nella gestione delle lavorazioni ci possa essere una parziale sovrapposizione della lavorazione di "Saldatura" rispetto all'"Assemblaggio"; voglio dire, inizio l'assemblaggio e, dopo un lotto di semilavorati assemblati, inizio la loro saldatura.
    Nella Cella "A3" ho previsto di gestire i giorni non lavorativi.
    Nella Cella "A4" ho previsto di gestire eventuali ore straordinarie per "Assemblaggio"
    Nella Cella "A5" ho previsto di gestire eventuali ore straordinarie per "Saldatura"
    Nel caso in cui questo tipo di gestione possa essere utile si potrebbe pensare ad un Codice VBA che, in automatico, vada a compilare il Foglio di lavoro "Foglio2".

    In allegato l'immagine del risultato a cui avrei pensato.



    Buona serata.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    Likan85
    Post: 4
    Registrato il: 10/07/2018
    Città: ZANICA
    Età: 39
    Utente Junior
    2013
    00 12/07/2018 08:10
    ciao,
    innanzitutto, Raffaele ti ringrazio per le proposte che hai fatto e il tempo usato per cercare di risolvere il mio problema. Mi spiace che non ci siamo capiti su ciò che volevo ottenere.

    Giuseppe,
    ti ringrazio il senso del file che sto cercando di creare è proprio quello che hai fatto. la strada è giusta,

    1) mi piace molto l'idea di far finire le lavorazioni il giorno prima della consegna effettivamente non avevo pensato che va consegnato

    2) Le lavorazioni preferirei che non si sovrapponessero

    3)l'approvvigionamento del materiale avviene poco prima dell'inizio dell'assemblaggio quindi nell'esempio avverrebbe martedì 30 -6gg escluso come hai messo sabato e domenica.


    le X sono da mettere manualmente? o dati i valori da A fino a I inseriti va a mettere lui i valori ?
    il file mi piace come l hai studiato se poi riesci a automatizzarlo in modo da dover inserire meno dati possibili e che sia pratico sarebbe ottimo.
    Ti ringrazio per l'aiuto
  • OFFLINE
    GiuseppeMN
    Post: 3.077
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 12/07/2018 09:45
    Buona giornata, Likan85;
    per quanto concerne le sovrapposizioni anch'io ho avuto un ripensamento; non devono esserci sovrapposizioni per evitare inutili movimentazioni accessorie all'interno dell'Unità produttiva, nella peggiore delle ipotesi potrà esserci una scelta in tal senso da parte del Capo Reparto o del Capo Officina.

    @Likan85, scrive:


    ... le X sono da mettere manualmente? o dati i valori da A fino a I inseriti va a mettere lui i valori ?
    il file mi piace come l hai studiato se poi riesci a automatizzarlo in modo da dover inserire meno dati possibili e che sia pratico sarebbe ottimo.


    I Flag sono tutti gestiti in modo automatico da Formule più o meno complesse.
    Una volta indicata, tramite "Convalida dati", la Commessa in Cella "A2" del Foglio di lavoro "Commessa" la gestione avviene in automatico.

    La cosa che mi creerà più problemi è "l'approvvigionamento del materiale" che, da tua richiesta, deve avvenre poco prima dell'inizio dell'assemblaggio; vedo come modificare la Formula che gestisce l'entrata della Materia prima.

    Provo a gestire sia il Lead-Time di tutte le Commesse sia la "colorazione" degli impegni nel Foglio di lavoro "Foglio2" tramite VBA; non sarà una passeggiata ma ci posso provare.



    A disposizione.

    Buon Lavoro.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    raffaele1953
    Post: 3.608
    Registrato il: 28/06/2011
    Città: AGORDO
    Età: 70
    Utente Master
    2013
    00 12/07/2018 16:50
    Un saluto a GiuseppeMN

    Del fatto che Tu abbia diversi operai e inifluente (l'orario che inserisci in assemblaggio+saldatura è quello reale di tutta l'officina produttiva)
    Scusami se sono diventato vecchio, mà non riesco capire una cosa...
    Le giornate lavorative Tue e del Fornitore (potrei capire se si parla di alimentari)
    Ammettiamo che hai tre commesse (A;B;C) uguali con (6gg + circa 2gg lavorazione) e sono da consegnare il 1/2/3 agosto
    Vedi allegato foglio3 e dimmi come farai il 31/7/2018 ed 01/08/2018 (non è meglio la colonna G)
    Oppure come nel Tuo file, il giorno 02/02/2018 hai tre commesse da terminare (mà dal 16/01/2018 al 29/01/2018 non fai nulla).
    Excel 2013
  • OFFLINE
    Likan85
    Post: 5
    Registrato il: 10/07/2018
    Città: ZANICA
    Età: 39
    Utente Junior
    2013
    00 12/07/2018 21:50
    Ciao Raffaele, avrò altre commesse e fatto come è mi aiuterà a capire se si possono inserire altre commesse o meno proprio vedendo quei buchi che dici tu.
  • OFFLINE
    GiuseppeMN
    Post: 3.078
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 12/07/2018 23:01
    Buona sera, Likan85;
    premesso che andrebbero rivisti i parametri inseriti nelle varie Commesse, potresti provare questo Codice VBA:
    Option Explicit
    
    Sub Planing_Impegni()
    On Error GoTo 10
    Application.ScreenUpdating = False
    Dim Ncl As Long, Cmm As Long, DtX As Long
    Dim k As Long, x As Long, y As Long, z As Long
    Dim Rtd As Byte, CMP As Byte
    Dim PDt As Integer, DtF As Integer
    Dim DCM As Date, ggCM As Byte
    Dim DAS As Date, ggAs As Byte
    Dim DSA As Date, ggSa As Byte
    
        Sheets("Commessa").Select
    With Worksheets("Planing")
        Ncl = Cells(2, Columns.Count).End(xlToLeft).Column
            Cmm = .Range("A" & .Rows.Count).End(xlUp).Row
            DtX = .Cells(2, .Columns.Count).End(xlToLeft).Column
        Range(.Cells(2, 8), .Cells(Cmm, DtX)).Interior.Pattern = xlNone
    
        For k = 3 To Cmm
            Cells(3, 1).Value = .Cells(k, 1).Value
                For PDt = 10 To Ncl
                    If Cells(4, PDt).Value <> "" Then Exit For
                Next PDt
                
                For DtF = Ncl To 10 Step -1
                    If Cells(4, DtF).Value <> "" Then Exit For
                Next DtF
                    DCM = Cells(2, PDt).Value
                        ggCM = DtF - PDt
                For PDt = 10 To Ncl
                    If Cells(5, PDt).Value <> "" Then Exit For
                Next PDt
                
                For DtF = Ncl To 10 Step -1
                    If Cells(5, DtF).Value <> "" Then Exit For
                Next DtF
                    DAS = Cells(2, PDt).Value
                        ggAs = DtF - PDt
                For PDt = 10 To Ncl
                    If Cells(6, PDt).Value <> "" Then Exit For
                Next PDt
                For DtF = Ncl To 10 Step -1
                    If Cells(6, DtF).Value <> "" Then Exit For
                Next DtF
                    DSA = Cells(2, PDt).Value
                        ggSa = DtF - PDt
                Rtd = Cells(3, 7).Value
        For x = 2 To Cmm
            If .Cells(x, 1).Value = Cells(3, 1).Value Then Exit For
        Next x
            For y = 8 To DtX
                If .Cells(2, y).Value = Cells(3, 2).Value Then Exit For
            Next y
                For z = 8 To DtX
                    If .Cells(2, z).Value = Cells(3, 3).Value Then Exit For
                Next z
            Range(.Cells(k, y), .Cells(k, z)).Interior.ThemeColor = xlThemeColorAccent1
            Range(.Cells(k, y), .Cells(k, z)).Interior.TintAndShade = 0.799981688894314
            If Rtd <> 0 Then Range(.Cells(k, z + 1), .Cells(k, z + Rtd)).Interior.Color = 255
    
        Range(.Cells(k, DCM - .Cells(2, 8).Value + 8), .Cells(k, DCM - .Cells(2, 8).Value + 8 + ggCM)).Interior.Color = 65535
        Range(.Cells(k, DAS - .Cells(2, 8).Value + 8), .Cells(k, DAS - .Cells(2, 8).Value + 8 + ggAs)).Interior.Color = 15773696
        Range(.Cells(k, DSA - .Cells(2, 8).Value + 8), .Cells(k, DSA - .Cells(2, 8).Value + 8 + ggSa)).Interior.Color = 5296274
        Next k
            Cells(3, 1).Value = .Cells(3, 1).Value
                Cells(8, 10).Select
            .Select
    End With
    Application.ScreenUpdating = True
        Cells(3, 8).Select
            End
    10:
        MsgBox "Dati incongruenti nella Commessa " & Cells(3, 1).Value & Chr(10) & "n.d.r  Ritardo consegna minimo 8 gg."
    Application.ScreenUpdating = True
        Cells(8, 10).Select
    End Sub
    

    In allegato il File con il quale ho condotto i miei Test.

    Nel Foglio di lavoro "Commessa" è possibile visualizzare il Lead Time della Commessa selezionata, tramite convalida dati, in Cella "A3".

    Premendo il Pulsante "Planing" vengono gestiti graficamente i Lead Time di tutte le Commesse in portafoglio nel Foglio di lavoro "Planing".

    Mi permetto di precisare che i Dati attribuiti alle varie Commesse non sono sempre congruenti; in particolare andranno rivisti i Dati attribuiti alla Commessa "C_18_001".



    A disposizione.

    Buona serata.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    Likan85
    Post: 6
    Registrato il: 10/07/2018
    Città: ZANICA
    Età: 39
    Utente Junior
    2013
    00 13/07/2018 09:08
    Ciao, wow è proprio quello che pensavo, 2 accorgimenti,
    1) si può togliere il colore azzurrino che viene messo dalla data ordine fino all'inizio dell'approvvigionamento?

    2) l'errore che da sul ritardo è spettacolare perché capisci subito che sarai già in ritardo.

    3)per quanto riguarda il ritardo, so che può sembrare strano, ma per come ragioniamo noi in officina il ritardo di 3 gg non deve conteggiare anche sabato e domenica ma solo giorni lavorativi.

    stessa cosa vale per l'approvvigionamento calcoliamo i gg lavorativi non quelli di calendario.


    4)l'approvvigionamento sotto i 2 gg in commessa 8 e 9 non si colorano le 2 celle ma solo 1 c'è un errore o restrizione?

    5) scusa mi son dimenticato una cosa, dopo la saldatura abbiamo delle lavorazioni esterne (tipo verniciatura) puoi aggiungere una colonna dopo ore previste saldatura che mi indichi sul grafico i gg lavorazioni esterne

    comunque complimenti e grazie soprattutto.
    [Modificato da Likan85 13/07/2018 09:34]
  • OFFLINE
    GiuseppeMN
    Post: 3.079
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 13/07/2018 09:46
    Buona giornata, Likan85.

    @Likan85, chiede:


    1) si può togliere il colore azzurrino che viene messo dalla data ordine fino all'inizio dell'approvvigionamento?


    Certamente; nel Codice VBA, basta eliminare le istruzioni:
            Range(.Cells(k, y), .Cells(k, z)).Interior.ThemeColor = xlThemeColorAccent1
            Range(.Cells(k, y), .Cells(k, z)).Interior.TintAndShade = 0.799981688894314
    



    3)per quanto riguarda il ritardo, so che può sembrare strano, ma per come ragioniamo noi in officina il ritardo di 3 gg non deve conteggiare anche sabato e domenica ma solo giorni lavorativi.


    Questo è più complicato; dovrei modificare la struttura della Procedura e, in questo momento, non riesco a farlo.



    5) scusa mi son dimenticato una cosa, dopo la saldatura abbiamo delle lavorazioni esterne (tipo verniciatura) puoi aggiungere una colonna dopo ore previste saldatura che mi indichi sul grafico i gg lavorazioni esterne.


    Quando si struttura un DataSet è fondamentale partire con il numero dei Campi (Colonne) ben definito, modificare il numero dei Campi in Corso d'opera richiede quasi sempre un notevole impegno; direi di testare la Procedura nell'attuale struttura.



    Buon Lavoro.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    Likan85
    Post: 7
    Registrato il: 10/07/2018
    Città: ZANICA
    Età: 39
    Utente Junior
    2013
    00 13/07/2018 09:52
    ok Giuseppe, testo la struttura oggi e domani così da vedere se tutto va .
    cosa che ho già notato forse per un vincolo nella struttura è che se ho preso l'ordine oggi e ho consegna a ottobre (può capitare) il sistema mi da errore ritardo min 8gg

    ti ringrazio dell'aiuto
  • OFFLINE
    GiuseppeMN
    Post: 3.080
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 13/07/2018 10:27
    Buona giornata, Likan.

    @Likan85, scrive:


    ... se ho preso l'ordine oggi e ho consegna a ottobre ...


    Nella Prodedura ho considerato solo 43 giorni dalla Data di ricevimento Ordine alla consegna al Cliente eel Prodotto finito.
    Vedo cosa succede se aumento il Lead Time.

    Nel frattempo mi sono accorto di aver dimenticato di proporti una possibile Soluzione a questa tua richiesta:

    @Likan85, scrive:


    ... è possibile inserire da qualche parte anche le ore per mese impegnate da assemblaggio e saldatura? ...


    Nell'immagine in allegato ho cercato di rappresantare come gestirei la cosa.



    Buon Lavoro.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    GiuseppeMN
    Post: 3.081
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 13/07/2018 10:43
    Confermo che è solo una questione di Lead Time; implementata la gestione da 43 a 120 gg tutto mi sembra funzionare.
    120 gg è un Range accettabile o preferisci aumentalo?
    Considera solo che più aumenti il numero di giorni da gestire più viene rallentata l'elaborazione; non di molto ma viene rallentata.


    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    Likan85
    Post: 8
    Registrato il: 10/07/2018
    Città: ZANICA
    Età: 39
    Utente Junior
    2013
    00 13/07/2018 10:53
    ciao,

    massimo ordini che accettiamo sono 180 gg ma se rallenta e non va in crash non è un problema aspetteremo 10 min invcece di 1


    bella soluzione per la somma ore mese , tiene conto anche dello spostamento magari da un mese all'altro dovuto a ritardi inseriti?


    spero un giorno di arrivare ad imparare a fare tutti questi sistemi. ad oggi sono a malapena a fare una pivot o una macro.


    grazie dell'aiuto.
  • OFFLINE
    GiuseppeMN
    Post: 3.082
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 13/07/2018 11:02
    Ok ma stiamo sempre parlando di un paio di secondo, non certo di minuti.

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    Likan85
    Post: 9
    Registrato il: 10/07/2018
    Città: ZANICA
    Età: 39
    Utente Junior
    2013
    00 17/07/2018 09:11
    Ciao Giuseppe,
    ho provato a inserire tutte le commesse da inizio anno ad oggi,
    funziona tutto molto molto bene .
    è pratico e veloce.

    rimango in attesa di tuoi aggiornamenti sulle modifiche discusse.

    ancora grazie per l'immenso aiuto.


  • OFFLINE
    GiuseppeMN
    Post: 3.084
    Registrato il: 03/04/2013
    Utente Master
    Excel 2000 - 2013
    00 17/07/2018 11:13
    Buona giornata, Likan85.

    @Likan85, scrive:


    ... se ho preso l'ordine oggi e ho consegna a ottobre ...



    Nella nuova Prodedura ho considerato 180 giorni dalla Data di ricevimento Ordine alla consegna al Cliente del Prodotto finito.



    ... è possibile inserire da qualche parte anche le ore per mese impegnate da assemblaggio e saldatura? ...


    Ho aggiunto l Foglio di lavororo "Report".

    Per il Conto lavoro e la gestione dei "Ritardi" escludendo Festivi e Prefestivi, si possono fare entrambi le modifiche ma bisognerebbe modificare radicalmente il Codice VBA; in questo momento, in attesa di qualche altro Utente in grado di modificare il Codice VBA,  dovrai accontentarti.



    Buon Lavoro.

    Giuseppe

    Windows XP - Excel 2000
    Windows 10 - Excel 2013
  • OFFLINE
    Likan85
    Post: 10
    Registrato il: 10/07/2018
    Città: ZANICA
    Età: 39
    Utente Junior
    2013
    00 17/07/2018 16:03
    grazie Giuseppe,
    inizierò a usarlo così in attesa che arrivi il file definitivo da qualcuno.

    ti ringrazio ancora per l'aiuto datomi, inizierò sicuramente visto le potenzialità a studiare come funziona il vba.