calcolare differenza tra tabelle
Hai un problema con Excel? 
calcolare differenza tra tabelle
di efarre data: 04/05/2015 18:27:22
buonasera a tutti,
come si può ottenere la differenza, esclusivamente con codice VBA, tra il materiale in magazzino e il materiale consumato, al fine di ottenere il materiale rimanete, come nell'esempio allegato, dove la tabella 3 è stata calcolata con una semplice =B3-H3 e trascinata per le 4 righe?
ogni tabella ha un'intestazione di colonna e di riga. L'intestazione di riga è il tipo di materiale (articolo, libro, marca, ecc.) e l'intestazione di colonna è una variante del tipo di materiale (modello o colore o versione, ecc.).
Avevo pensato ad un ciclo in questo modo:
per ogni riga di tabella 1 (magazzino) cerca in tabella 2 (consumato) il nome corrispondente ed effettua la sottrazione. il risultato mettilo nella tabella 3 (rimanente) nel riga del nome corrispondente.
Non è detto che le 3 tabelle siano ordinate in base all'intestazione di riga.
Ovviamente non ci riesco.
Grazie a chi può aiutarmi
Enzo
di Marius44 (utente non iscritto) data: 04/05/2015 19:07:07
Ho ricopiato le tue tabelle poco più in basso. Se lanci la macro che ho scritto qui sotto ottieni il risultato che cercavi. Cmq allego il file con la macro.
Se le tabelle Magazzino e Consumo hanno sempre le stesse righe e colonne il gioco è fatto. Tutto cambia se la tabella Consumo riporta SOLO le righe e le colonne che hanno dati interessanti mentre NON RIPORTA quelle che sono TUTTE uguali a zero.
Fammi sapere.
Sub calcola()
For i = 10 To 13
For j = 2 To 4
Cells(i, j + 12) = Cells(i, j) - Cells(i, j + 6)
Next j
Next i
End Sub |
di Mister_x (utente non iscritto) data: 04/05/2015 19:17:01
ciao
per questo lavoro non serve nessuna Sub() ma semplicemente la funzione
MATR.SOMMA.PRODOTTO()
da mettere in N3 e trascinare a destra e in basso
N3=MATR.SOMMA.PRODOTTO(($A$3:$A$6=$M3)*($B$2:$D$2=N$2)*($B$3:$D$6))-MATR.SOMMA.PRODOTTO(($G$3:$G$6=$M3)*($H$2:$J$2=N$2)*($H$3:$J$6))
riallego il tuo file con la modifica
ciao
di efarre data: 05/05/2015 08:29:16
buongiorno,
grazie per le risposte che in realtà, sono ognuna una parte di quella che mi serve.
mi spiego meglio.
sempre nell'ottica di imparare ad usare il VBA ho creato una procedura che gestisce il consumo di toner di diverse stampanti in uso presso enne sedi.
per ogni sede ho diverse marche con diversi modelli di stampanti che attraverso la registrazione di interventi sulla singola stampante mi controlla il consumo di toner. nella sede 1, ad esempio, ho le stampanti marca XX e i modelli YY e ZZ che nel corso del tempo hanno consumato il Toner giallo, nero, magenta e ciano.
ho una scorta in magazzino e ogni volta che eseguo un intervento vorrei, in automatico e usando esclusivamente VBA, sottrarre il Toner del colore sostituito dal magazzino. questa sintesi è nel foglio "Situazione_Scorte_Toner". ovviamente è sufficiente impostare la formula di Mister_x (o una equivalente, io ad esempio ho utilizzato conta.più.se) e tutto funziona benissimo. solo che io vorrei NON utilizzare formule ma solo VBA come Marius44.
Allego il file sul quale voglio fare il calcolo (foglio "Situazione_Scorte_Toner")
Grazie
Enzo
di Marius44 data: 05/05/2015 16:49:37
Ti allego il file "consumo_stampanti".
Nella tua Form ho aggiunto un pulsante che riassume tutti i consumi e li posta nel foglio "Situaz_Scorte_Toner", ma con un'altra grafica rispetto alla tua, e quindi procede col calcolo delle rimanenze.
Purtroppo mi sono "incartato" nei consumi di Via Brighenti che, al momento, rimangono fuori.
Vedi se ti va bene così mentre io continuo a provare.
Fammi sapere.
di Marius44 data: 06/05/2015 08:25:10
Allego il file Consumo_Stampanti_Due
Penso il risultato, anche se nell'ultima parte è "artigianale", è quello che volevi.
Fammi sapere,
Ciao
di efarre data: 06/05/2015 12:30:26
sarà anche artigianale ma funziona benissimo...
grazie mille
Enzo
Vuoi Approfondire?