Condividi:        

vba sommare righe di una tabella

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

vba sommare righe di una tabella

Postdi fabriinfo » 30/07/13 11:11

Buongiorno
Utilizzando VBA ho creato una macro che genera una tabella contenente numeri.
Vorrei aggiungere un'istruzione che mi inserisca, nella prima colonna libera alla destra della tabella, la formula che mi sommi il contenuto di ogni riga.
Tale formula però dovrebbe essere dinamica, nel senso che le colonne della tabella potrebbero, ad ogni invio della macro, aumentare o diminuire con conseguente aumento o diminuzione delle celle da sommare.

Grazie comunque per qualsiasi suggerimento. :)

Moderazione: topic spostato nel forum piu appropriato.
fabriinfo
Newbie
 
Post: 6
Iscritto il: 30/07/13 10:59

Sponsor
 

Re: vba sommare righe di una tabella

Postdi ricky53 » 30/07/13 16:59

Ciao,
prima di tutto benvenuto nel nostro forum.

Puoi inviare il codice che utilizzi per creare la tabella con i numeri?
Basandoci sul tuo codice potremmo esserti più utili.
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. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: vba sommare righe di una tabella

Postdi Flash30005 » 30/07/13 17:20

Ciao Fabriinfo e benvenuto nel Forum

leggi il post di Ricky

Potresti usare la formula Somma inserendola a 10 o 20 colonne più a destra delle possibili colonne che potrebbero essere occupate
in pratica lasci un certo "margine di sicurezza".
La formula somma comprenderà tutte le colonne da A alla colonna precedente quella della formula
Le celle vuote non produrranno chiaramente alcun risultato se non zero.

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: vba sommare righe di una tabella

Postdi fabriinfo » 31/07/13 20:17

Grazie per le risposte.

Credo che abbia ragione Flash30005. L'unica soluzione è inserire la formula in una colonna che ritengo non sia mai toccata dalla tabella per quanto possa espandersi verso destra.

Grazie ancora e Ciao

Fabriinfo
fabriinfo
Newbie
 
Post: 6
Iscritto il: 30/07/13 10:59

Re: vba sommare righe di una tabella

Postdi Anthony47 » 01/08/13 23:57

Non e' l' unica, ma e' la piu' pratica...
Probabilmente pero' la piu' semplice sarebbe stata aggiungere nella macro che usi per creare la tabella due righe di codice che sommavano i valori man mano inseriti in tabella.

Ciao, alla prossima.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: vba sommare righe di una tabella

Postdi fabriinfo » 06/08/13 19:51

Ciao Antony74

Effettivamente io vorrei inserire proprio una formula che sommi il totale di ogni riga perchè può capitare che io modifichi i valori della tabella, magari cancellandoli da qualche colonna senza far girare la macro. In più mi piaceva l'idea che le formule fossero inserite nella prima colonna libera a destra della tabella a prescindere dal numero dei campi generati.

Lo so, sono un tipo complicato.

Grazie e ciao
;)
fabriinfo
Newbie
 
Post: 6
Iscritto il: 30/07/13 10:59

Re: vba sommare righe di una tabella

Postdi fabriinfo » 06/08/13 19:53

Scusa, ho sbagliato il Tuo nome Anthony47
fabriinfo
Newbie
 
Post: 6
Iscritto il: 30/07/13 10:59

Re: vba sommare righe di una tabella

Postdi Flash30005 » 07/08/13 00:02

Dovresti inviare il codice della tua macro per implementarla al fine di ottenere quello che desideri

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: vba sommare righe di una tabella

Postdi fabriinfo » 09/08/13 20:29

Ciao
Di seguito il codice che ho sviluppato :

Codice: Seleziona tutto
Sub confronto()
Dim tab_riga As Integer
Dim anno As Integer
Dim mese As Integer
Dim coltab As Integer
Dim x As Integer
Dim sumtabr As Integer
Dim sumtabc As Integer
Dim y As Integer
tab_riga = 2
For anno = 2013 To 2013
For mese = 1 To 7
Cells(tab_riga, 14).Value = "entrate"
Cells(tab_riga, 15).Value = anno
Cells(tab_riga, 16).Value = mese
tab_riga = tab_riga + 1
Cells(tab_riga, 14).Value = "uscite"
Cells(tab_riga, 15).Value = anno
Cells(tab_riga, 16).Value = mese
tab_riga = tab_riga + 1
Next mese
Next anno
fine_colonna_tabella:
coltab = 17
x = 3
Cells(1, coltab).Value = Cells(x, 8).Value
'inizio tabella
Do
inizio5:
coltab = 17
x = x + 1
Do
If Cells(x, 8).Value = Cells(1, coltab).Value Then _
GoTo inizio5:
coltab = coltab + 1
Loop Until Cells(1, coltab).Value = ""
Cells(1, coltab).Value = Cells(x, 8).Value
Loop Until Cells(x, 8).Value = ""
sumtabc = 17
Do
sumtabr = 1
Do
sumtabr = sumtabr + 1
y = 2
Do
If Cells(y, 9).Value < 0 Then _
Cells(y, 9).Value = Cells(y, 9).Value * (-1)
If Cells(y, 10).Value = Cells(sumtabr, 14).Value And _
Cells(y, 6).Value = Cells(sumtabr, 15).Value And _
Cells(y, 7).Value = Cells(sumtabr, 16).Value And _
Cells(y, 8).Value = Cells(1, sumtabc).Value Then _
 Cells(sumtabr, sumtabc).Value = Cells(y, 9).Value
y = y + 1
Loop Until Cells(y, 10).Value = ""
Loop Until Cells(sumtabr, 16).Value = ""
sumtabc = sumtabc + 1
Loop Until Cells(1, sumtabc).Value = ""
Rows("1:1").Select
    Selection.Font.Bold = True
    Range("A1").Select
Cells.Select
    Selection.Columns.AutoFit
    Range("A1").Select
End Sub



Di seguito le colonne excel e i dati da cui la macro preleva le informazioni per generare la tabella :

Codice: Seleziona tutto
F      G       H             I                J
anno   mese   causale   valore   
2013   1   pensione   500            entrate
2013   1   busta paga1000           entrate
2013   2   pensione   500            entrate
2013   2   ricarica   5             entrate
2013   2   busta paga1000             entrate
2013   3   bolletta   48,63   entrate
2013   3   pensione   500           entrate
2013   3   ricarica   50           entrate
2013   3   busta paga1000           entrate
2013   3   competenze   0,95   entrate
2013   4   pensione   500           entrate
2013   4   busta paga   1000   entrate
2013   5   pensione   500   entrate
2013   5   competenze   2,68   entrate
2013   5   busta paga   1000   entrate
2013   6   pensione   500   entrate
2013   6   busta paga   1000   entrate
2013   6   competenze   0,76   entrate
2013   7   pensione   500   entrate
2013   1   bolletta   411,87   uscite
2013   1   spesa   298   uscite
2013   1   prelievo   200   uscite
2013   1   commissioni   66,91   uscite
2013   1   varie   475,99   uscite
2013   1   imposta   76,9   uscite
2013   1   automobile   80   uscite
2013   1   canone   11,5   uscite
2013   2   bolletta   400   uscite
2013   2   commissioni   2,5   uscite
2013   2   automobile   175   uscite
2013   2   spesa   225   uscite
2013   2   varie   55   uscite
2013   2   prelievo   200   uscite
2013   2   imposta   306,4   uscite
2013   2   ricarica   5   uscite
2013   2   canone   11,5   uscite
2013   3   commissioni   3,2   uscite
2013   3   spesa   291   uscite
2013   3   automobile   140   uscite
2013   3   imposta   234   uscite
2013   3   prelievo   300   uscite
2013   3   varie   147,95   uscite
2013   3   ricarica   50   uscite
2013   3   bolletta   70,93   uscite
2013   3   canone   11,5   uscite
2013   4   commissioni   2,55   uscite
2013   4   automobile   185,36   uscite
2013   4   canone   11,5   uscite
2013   4   spesa   315   uscite
2013   4   imposta   16,8   uscite
2013   4   bolletta   100,85   uscite
2013   4   prelievo   400   uscite
2013   4   varie   5   uscite
2013   5   prelievo   100   uscite
2013   5   automobile   306   uscite
2013   5   commissioni   1,5   uscite
2013   5   spesa   355,18   uscite
2013   5   canone   11,5   uscite
2013   5   bolletta   490   uscite
2013   5   varie   55   uscite
2013   5   imposta   300   uscite
2013   6   spesa   388   uscite
2013   6   automobile   90   uscite
2013   6   bolletta   500   uscite
2013   6   commissioni   2   uscite
2013   6   canone   11,5   uscite
2013   6   varie   32   uscite
2013   6   prelievo   500   uscite
2013   6   imposta   17   uscite
2013   7   commissioni   2,55   uscite
2013   7   automobile   183,06   uscite
2013   7   spesa   257   uscite
2013   7   prelievo   200   uscite
2013   7   varie   8   uscite
2013   7   bolletta   144,77   uscite


Mi scuso per la qualità delle immagini ma non riesco a "fotografare" il foglio excel e inserirlo nel post.

Grazie e ciao
Fabriinfo
fabriinfo
Newbie
 
Post: 6
Iscritto il: 30/07/13 10:59

Re: vba sommare righe di una tabella

Postdi Anthony47 » 10/08/13 00:12

Per sapere come fare ad allegare uno screenshot guarda qui: viewtopic.php?f=26&t=80395#p466013
Inoltre se inglobi il tuo codice con i tag "Code" (l' ho fatto io) esso sara' visibile correttamente senza faccine o faccette.
Infine, se quando scrivi una macro "indenti" la parte subordinata esso sara' piu' leggibile da te e dagli altri; es:
Codice: Seleziona tutto
'No bbuono:
For I=1 to 22
For J=4 to 6
If Cells(I,J)<>"Entrate" then
Cells(I,J)=Cells(I,J)*(-1)
end if
Next J
Next I
'Meglio:
For I = 1 To 22
    For J = 4 To 6
        If Cells(I, J) <> "Entrate" Then
            Cells(I, J) = Cells(I, J) * (-1)
        End If
    Next J
Next I

CIO' DETTO, dopo aver visto i dati di partenza e arrivi con la macro, la mia impressione e' che a te serve una tabella pivot, da cui otterrai il risultato visibile in figura:
Immagine
Uploaded with ImageShack.us
(Per vedere l' immagine completa: Tasto dx, Visualizza immagine)

Sara' preventivamente necessario intervenire sul formato dei dati, per creare tipologie di "Entrate" e tipologie di "uscite", e trasformare le uscite in "negativo".
Allo scopo sono state aggiunte le colonne Valore Std e Causale std, ottenute in colonna K ed L rispettivamente con le formule
Codice: Seleziona tutto
=SE(J2<>"Entrate";-I2;I2)
=SE(J2<>"Entrate";"-"&H2;"+"&H2)

Come da immagine:
Immagine

Uploaded with ImageShack.us
Sono queste le colonne usate come Etichette di colonna (K) e capo Valori (L).

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: vba sommare righe di una tabella

Postdi fabriinfo » 10/08/13 09:37

Grazie per la risposta e per l'aiuto Anthony47.

Devo prendere un pò di pratica con i post dei forum ( e anche con Visual Basic ).

Utilizzerò una tabella pivot per le mie esigenze.

Siete stati molto preziosi ed efficaci.

Ci sentiremo per un prossimo quesito.

Ciao e a presto

fabriinfo
fabriinfo
Newbie
 
Post: 6
Iscritto il: 30/07/13 10:59


Torna a Applicazioni Office Windows


Topic correlati a "vba sommare righe di una tabella":


Chi c’è in linea

Visitano il forum: Ricky0185 e 46 ospiti