ciao a tutti
devo realizzare una macro che calcoli il totale dei prezzi di una distinta base.
La distinta è una successioni di codici ciascuno con un suo livello (1 - 2 - 3 - 4 ...) il livello massimo è 1. il totale di questo livello è dato la somma di tutti i suoi livelli figli, livelli 2. Questi possono a loro volta avere dei "figli", i livelli 3.
Stessa cosa per i livelli 3 il cui valore può eventualmente essere dao dalla somma di livelli 4.
Al link di seguito un esempio:
https://dl.dropboxusercontent.com/u/110044258/clcolo%20distinta%20base.xlsm
Vi è alll'inerno una macro da me creata e che utilizzo per ora. E' un po artigianale ma per ora mi aiuta.
Questo il funzionamento del ciclo:
La macro parte dai valori di distinta di livello = a 4; scorro la distinta sommando tutte le righe con valore uguale a 4, le sommo e le incollo quando trovo la prima riga = a 3 (il ciclo parte dal basso). Quel livello 3 è il padre di tutti i 4 sotto di lui
e quindi si becca la somma aggiornata ma solo se non ha già un valore (io sto quotando una distinta base, faccio un cerca verticale su un foglio dove ho tutti i prezzi per cui può esserci un caso in cui un padre (livello3) abbia già un valore diverso dalla
somma che danno i figli (livell2), ma che devo giocoforza utilizzare ignorando la somma dei suoi figli)
Il mio ciclo incolla le somme quando trova un "padre" che non ha un totale ( se lo ha gia per evitare che me lo sovra-scrivi lo incolla nella cella di fianco)
Dopo di che faccio la stessa cosa per i valori 3 (le cui somme convergono nei livelli 2). Il criterio è sempre lo stesso: un livello 2 è la somma di tutti i livelli tre successivi (fino al seguente valore 2 ovviamente)
C'è qualche bug per cui il ciclo si completa solo per il livello più alto (il 4) poi non va avanti ( per ora forzo manualmente la macro dando prima valore 3 e poi valore 2 alla variabile y).
Quello che vorrei:
- eliminare il bug sopracitato
- fare ( e sarebbe un sensibile miglioramento) è incollare al posto della somma la formula equivalente (così se cambio la quotazione di un "figlio" vengono modificati di conseguenza tutti i padri)