Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

macro somma livelli distinta base

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

macro somma livelli distinta base

Postdi nicodam84 » 22/02/14 09:58

ciao a tutti

devo realizzare una macro che calcoli il totale dei prezzi di una distinta base.

La distinta base è composta da righe ciascuna con un proprio livello.

Esempio: devo calcolare il prezzo totale di una casa. La casa nella mia DB è il primo livello ( livello 0). Per ottenere il prezzo della casa devo sommare i valori dei suoi sotto-livelli: le stanze ( che avranno livello 1 ).
Il prezzo delle stanze è dato a sua volta dai diversi sotto - livelli delle stanze ( il prezzo del soggiorno è dato ad esempio dalla somma di tavolo+ divano + televisore, ossia i livelli 3 della mia distinta).
I livelli 3 possono eventualmente anche loro avere dei sotto-livelli. Quindi il l prezzo del tavolo può essere dato dalla somma dei prezzi di 4 appoggi più un ripiano.

Sul mio file excel avrò questa struttura

DESCRIZIONE Q.TA' PREZZO

0 CASA 1
1 SOGGIORNO 1
2 TAVOLO 1
3 GAMBA 4 2
3 RIPIANO 1 3
2 DIVANO 1
2 TV 1 5
1 CAMERA1 1
2 LETTO 2 5
1 CUCINA 1
2 FRIGO 1 3
2 FORNELLO 1 3


Ho pertanto i prezzi di: gambe, ripiano,divano,tv, letto, frigo, fornello. La mia macro dovrebbe fare le diverse somme dei livelli e poi darmi il totale del prezzo casa

Grazie a chiunque vorrà darmi uno spunto


Nicola
nicodam84
Newbie
 
Post: 5
Iscritto il: 15/02/14 10:47

Sponsor
 

Re: macro somma livelli distinta base

Postdi ricky53 » 22/02/14 13:44

Ciao,
prova con una tabella pivot ... è più facile di come possa sembrare al primo approccio.

Provaci e ... non le abbandonerai.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: macro somma livelli distinta base

Postdi Anthony47 » 22/02/14 19:34

...e se non risolvi con quanto suggerito da Ricky allora e' bene che pubblichi un file di esempio, gia' popolato con un tot di dati nell' esatta struttura; per come fare guarda qui: viewtopic.php?f=26&t=80395

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro somma livelli distinta base

Postdi ricky53 » 22/02/14 20:57

Ciao,
in attesa di tue nuove .. nel tuo esempio il risultato deve essere "32" ?

Immagino che la tua realtà sia più complessa di come l'hai esposta, è preferibile che tu esponga la situazione effettiva piuttosto che un esempio prodotto ai fini di farci comprendere le tue necessità

Se posso: io riorganizzerei la tua struttura dei dati!!!

Per poter proporre qualcosa occorre avere informazioni più complete della tua situazione reale e, come già chiesto da Anthony, un file di esempio sarebbe gradito.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: macro somma livelli distinta base

Postdi nicodam84 » 27/02/14 22:28

ciao

scusate l'attesa...allora cerco di darvi maggiori dettagli
Qui potete trovare un file di esempio

https://dl.dropboxusercontent.com/u/110 ... 0base.xlsm

Vi è anche una macro - molto macchinosa a dire il vero ma non sono ancora molto esperto di VBA.
Questo quello che faccio iterare

lLa 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))

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 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)
nicodam84
Newbie
 
Post: 5
Iscritto il: 15/02/14 10:47

Re: macro somma livelli distinta base

Postdi Anthony47 » 04/03/14 00:33

Ma questo quesito e' ancora aperto?

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro somma livelli distinta base

Postdi nicodam84 » 14/03/14 13:12

Ciao Anthony

in realtà sto ancora attendo qualche suggerimento, il file con il codice che per ora utilizzo è al seguente link

https://dl.dropboxusercontent.com/u/110 ... aBase.xlsm

Nicola
nicodam84
Newbie
 
Post: 5
Iscritto il: 15/02/14 10:47


Torna a Applicazioni Office Windows


Topic correlati a "macro somma livelli distinta base":


Chi c’è in linea

Visitano il forum: patel e 9 ospiti