Esplosione scalare (in excel 2013)

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
roberto_re
10sabato 2 maggio 2015 10:44

Ciao, avrei la necessità di ottenere in excel l'esposione scalare di una DIBA partendo dalla tabella di dati nella forma classica che di solito si trova nei sistema gestionali.

In allegato ti ho riportato un esempio: il foglio BOM è la forma classica che ho a disposizione, mentre l'output che dovrei generare con la macro è il foglio SCALARE.

Sarebbe bello avere il codice flessibile, cioè utilizzabile indipendentemente dal numero di record e legami annidati presenti nel foglio BOM (per esempio nel mio caso ne ho circa 7000 di record, che possono cambiare di giorno in giorno).

E' possibile risolvere anche questo aspetto con VBA?
Grazie in anticipo se qualcuno riesce a trovare la soluzione alla mia questione.
by sal
00sabato 2 maggio 2015 15:30
Distinta di produzione
Ciao Roberto, premesso che hai creato l'archivio "Padre-Figlio" un probabile sviluppo potrebbe essere, sviluppare una "Distinta materiale, che poi passerebbe ad una "Distinta di produzione".

ma quest'ultima dovrebbe interfacciarsi con la giacenza Reparto, per la produzione in determinati tempi di consegna.

ecco un esempio, per costruire 60 elementi con tutto il materiale occorrente, ed il confronto con la giacenza di magazzino, questo un mio vecchio file, ne avevo ancora un altro ma non lo trovo, sarà su qualche disco di backup, dovrei fare una ricerca.

sotto la "Distinta base" con il materiale per costruirne 1 solo.

era questo lo sviluppo che volevi?.

Ciao By Sal [SM=x423051]

roberto_re
00sabato 2 maggio 2015 20:13
Esplosione scalare
Ciao, e grazie per il feedback!

Più o meno è quanto mi serve, ma ho già un sistema per le giacenze e tutto il resto, quindi in realtà mi servirebbe il VBA per ottenere l'output esatto che ho postato nel mio precedente messaggio...

Grazie comunque per qualsiasi info; tutto può tornare utile!
A presto, Roberto

by sal
00domenica 3 maggio 2015 08:28
Distinta di produzione
Ciao Roberto, eccoti la macro per la compilazione della distinta

Sub compila()
Dim sh1 As Worksheet, sh2 As Worksheet
Dim x As Long, y As Long, R1 As Long, R2 As Long, d As Long, D1 As String, D2 As String

Set sh1 = Worksheets("BOM")
Set sh2 = Worksheets("SCALARE")
R1 = sh1.Cells(Rows.Count, 1).End(xlUp).Row
R2 = sh2.Cells(Rows.Count, 1).End(xlUp).Row
d = sh2.Cells(1, 9)
Range("E2:E" & R2).ClearContents
For x = 2 To R2
    D2 = sh2.Cells(x, 4) 'sh2.Cells(x, 1) & sh2.Cells(x, 3)
    For y = 2 To R1
        D1 = sh1.Cells(y, 3) 'sh1.Cells(y, 1) & sh1.Cells(y, 2)
        If D2 = D1 Then sh2.Cells(x, 5) = CDbl(sh1.Cells(y, 4)) * d: Exit For
    Next y
Next x
Set Sh1 = Nothing
Set Sh2 = Nothing
MsgBox "Lista terminata"
End Sub


ci sarà qualcosa che non va, formattazione o altro, nei codici padre è figlio per cui come vedi ho fatto riferimento alla descrizione del materiale, ci sono anche spazi invisibili alla fine delle descrizioni come pure nei codici, prima avevo fatto riferimento all'unione dei 2 codici.

se la macro deve funzionare, i Codici o la descrizione devono essere uguali alla lista di composizione, altrimenti anche uno spazio in più, che non si vede, inficia la ricerca.

nella cella gialla del foglio inserisci il numero di componenti per fare il calcolo.

Ciao By Sal [SM=x423051]

GiuseppeMN
00lunedì 4 maggio 2015 19:40
Buona sera a Tutti;
prima di rispondere ho atteso un commento di roberto_re (che saluto), poi ho rotto gli indugi.
@ by sal
Temo che la richiesta sia più complessa.
Da quello che posso aver capito, Roberto, parte da una Tabella, nel Foglio di lavoro "SCALARE", completamente vuota.
Anche perchè, perdonami, ma se esistessero già i campi
-    padre
-    livello figlio
-    figlio
-    descrizione_figlio
-    UM
per calcolare:
-    quantità_impiego
avrei utilizzato in Cella "E2":
 =CERCA.VERT($C2;BOM!$B:$D;3;0)*$I$1 

da trascinare nelle Celle sottostanti; questo consete di avere i totali al solo variare del Valore in Cella "I1"
ma, questa è solo una mia interpretazione.

@ roberto_re
vorrei chiederti se lo schema allegato risponde alla Tua richiesta.

Se lo ritieni opportuno, possiamo approfondire.


A disposizione.

Buona serata.

Giuseppe
roberto_re
00lunedì 4 maggio 2015 22:54
Esplosione scalare

Grazie Giuseppe,
si effettivamente la tua vista è ben allineata con quanto stavo cercando (la questione non è cosi semplice come dicevi, e ci sto pure riflettendo io!).

Ti segnalerei però i seguenti aspetti da ritoccare:
- nella colonna di sinistra "padre" meglio ripetere in tutte le righe sempre il padre rispetto a cui si riferisce il livello a cui si trova il codice figlio (quindi andrebbe ripetuto sempre il 557L/382L in ogni riga)
- la colonna di fabbisogno in rosso non mi interessa (nel senso che potresti ometterla, tanto la posso ricavare io una volta che ho l'elaborato)

Poi direi che dovremmo esserci (mi auguro!).
Spero di essere stato chiaro...
Grazie comunque per il supporto!
GiuseppeMN
00martedì 5 maggio 2015 08:17
Buona giornata, Roberto;
prima di procedere, consentimi alcune considerazioni.
roberto_re; scrive:


- nella colonna di sinistra "padre" meglio ripetere in tutte le righe sempre il padre rispetto a cui si riferisce il livello a cui si trova il codice figlio (quindi andrebbe ripetuto sempre il 557L/382L in ogni riga)


Questo, ovviamente, non è un problema, ma, sinceramente preferirei non mettere più mano alla procedura.

Se hai problemi nella modifica, possiamo risentirci e, assieme, trovare la giusta soluzione.

roberto_re; scrive:


- la colonna di fabbisogno in rosso non mi interessa (nel senso che potresti ometterla, tanto la posso ricavare io una volta che ho l'elaborato)


Anche questo non è un problema; questi valori mi erano serviti per valorizzare i fabbisogni, in modo univoco.
Voglio dire, il Codice:
-    LU75-01
nella distinta, anche se a Livelli diversi, compare due volte; nel prospetto in Colonne "M:O", in automatico, vengono inserito i Codici univoci con i relativi valori totali.

Nel caso in cui questo non serva, basterà eliminare una parte del Codice:
-    Sub Livel1()

Come puoi ben vedere non ho modificato i Tuoi Codici, quindi, nel Foglio di lavoro "BOM",  troverai dei Record con Codici e Descrizioni con spazi finali che, a mio avviso andrebbero eliminati; ma questa è altro storia.

La soluzione proposta prevede di avere, oltre ai Tuoi Fogli di lavoro originali, tanti nuovi Fogli di lavoro quanti sono i Livelli in Distinta oltre al primo Livello.

Nell'esempio i Livelli sono tre, quindi ho aggiunto due Fogli di lavoro:
-    Liv2
e
-    Liv3

Con lo stesso criterio, potranno essere aggiunti altri Livelli.


A disposizione per eventuali ulteriori chiarimenti.

Buon Lavoro e buona serata.

Giuseppe
Giuseppe Santaera
00mercoledì 25 gennaio 2017 13:19
grazie
Proverò ad unsarla nella speranza che mi sia utile
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 13:21.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com