Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

somme a fine pagina, come fare?

589 views
Skip to first unread message

Ignorante

unread,
Nov 1, 2003, 12:03:56 PM11/1/03
to
Salve sapienti,
mi sono fatto un bel file di excel per calcolare tutti gli ammortamenti:
ogni riga ha la descrizione del cespite (oggetto) da ammortizzare, il costo,
la aliquota di ammortamento da utilizzare e varie formulette che mi dicono
per quanti anni dovrò ammortizzare, quanto ho già ammortizzato e a quanto
ammonta l'accantonamento di quest'anno.
Siccome i cespiti da ammortizzare sono molti, le righe sono parecchie e
quando devo stampare l'elenco degli ammortamenti sul registro apposito ci
vuole più di una pagina. Siccome alla fine di ogni pagina ci vuole la somma:
c'è un modo per dire a excel di farmi le somme a fine pagina e il riporto
della somma all'inizio della pagina successiva?
Grazie in anticipo per l'aiuto che vorrete darmi!


Enzo Samarelli

unread,
Nov 1, 2003, 3:33:51 PM11/1/03
to
Mi riferisco a:
"Ignorante" <maes...@despammed.com> ha scritto nel messaggio
news:IIRob.15138$gA....@tornado.fastwebnet.it...

> Siccome alla fine di ogni pagina ci vuole la somma:

Una volta si. .....Ora a cosa serve? per una verifica manuale?

> c'è un modo per dire a excel di farmi le somme a fine pagina e il riporto
> della somma all'inizio della pagina successiva?

si con VBA.
Oppure, vai a Visualizza > Anteprima interruzione di pagina > ingrandimento
quello che vuoi.
Puoi trascinare la linea tratteggiata blu (cambio pagina) verso sù dove
vuoi.
Puoi agire ugualmente, come nella vista normale, nel senso che puoi inserire
al posto giusto due righe vuote ed impostare le giuste formule per la somma
a fine pagina e per il riporto.
Se poi sono decine e decine, ....in VBA
se hai difficoltà, fatti sentire.
enzo


Maurizio Rota

unread,
Nov 2, 2003, 1:14:46 PM11/2/03
to
"Ignorante" <maes...@despammed.com> ha scritto nel messaggio
news:IIRob.15138$gA....@tornado.fastwebnet.it...


Io ho creato questa Sub dove le somma parziale e riporti devono essere
eseguiti sulla colonna "D";
prova a darci un'occhiata adattandola alle tue esigenze.

Queste le intestazioni:

A B C D
PR-DATA-DESCRIZIONE-IMPORTO

è necessario verificare ed eventualmente eliminare riporti parziali già
creati:

Sub Riporti()

Dim Riga(1000) As Integer
Dim i As Integer
Dim k As Integer
Dim TotRip As String
Dim tb As Worksheet

Application.ScreenUpdating = False

'elimina vecchi riporti e/o righe di calcolo
Set tb = Worksheets(1)
TotRighe =
Application.WorksheetFunction.CountA(Worksheets(1).Range("D:D"))

For k = 2 To TotRighe
If IsEmpty(tb.Cells(k, 1)) Then tb.Rows(k).EntireRow.Delete
Next k

Rows(2).Insert
Rows(2).Select
Selection.Font.Bold = False

Cells(2, 3) = "Riporto Iniziale"
Cells(2, 3).Font.Bold = True
Cells(2, 4) = 0
Cells(2, 4).NumberFormat = "#,##0.00_ ;[Red]-#,##0.00 "
Cells(2, 4).Font.Bold = True

Application.Goto Reference:=Worksheets(1).Cells(65536, 1).End(xlUp),
Scroll:=True
' necessario x calcolare N. pagine
NPag = Worksheets(1).HPageBreaks.Count 'conta esistenza N. pagine -1
' MsgBox "Numero di pagine: " & NPag + 1

If NPag = 0 Then GoTo Fine

For i = 1 To CInt(NPag)
Riga(i) = Worksheets(1).HPageBreaks(i).Location.Row
Next i

Riga(0) = 0
For i = 1 To NPag
Cells(Riga(i), 4).Select
Selection.EntireRow.Insert
TotRip = "=ROUND(sum(D" & CStr(Riga(i - 1)) & ":D" &
CStr(Riga(i) - 1) & "),2)"
Cells(Riga(i), 4) = TotRip
Cells(Riga(i), 4).Font.Bold = True
Cells(Riga(i), 3) = "Riporto"
Cells(Riga(i), 3).Font.Bold = True
Next i

'ricorregge prima formula
PrimaForm = Worksheets(1).HPageBreaks(1).Location.Row
Cells(PrimaForm, 4) = "=ROUND(sum(D1:D" & CStr(PrimaForm - 1) & "),2)"

'ultima formula
Riga_z = Cells(65536, 4).End(xlUp).Row
Riga_a = Cells(Riga_z, 2).End(xlUp).Row
Cells(65536, 4).End(xlUp).Offset(1, 0) = "=ROUND(sum(D" & CStr(Riga_a -
1) & ":D" & CStr(Riga_z) & "),2)"
Cells(65536, 4).End(xlUp).Offset(1, 0).Font.Bold = True
Cells(65536, 3).End(xlUp).Offset(1, 0) = "Totale"
Cells(65536, 3).End(xlUp).Offset(1, 0).Font.Bold = True

Application.Goto Reference:=Worksheets(1).Cells(2, 1), Scroll:=True

Exit Sub

Fine:
Riga_z = Cells(65536, 4).End(xlUp).Row
Cells(65536, 4).End(xlUp).Offset(1, 0) = "=ROUND(sum(D2:D" &
CStr(Riga_z) & "),2)"
Cells(65536, 4).End(xlUp).Offset(1, 0).Font.Bold = True
Cells(65536, 3).End(xlUp).Offset(1, 0) = "Totale"
Cells(65536, 3).End(xlUp).Offset(1, 0).Font.Bold = True

Application.Goto Reference:=Worksheets(1).Cells(2, 1), Scroll:=True

End Sub
Sub EliminaRiporti()

Dim k As Integer
Dim TotRighe
Dim tb As Worksheet

Application.ScreenUpdating = False

Set tb = Worksheets(1)
TotRighe =
Application.WorksheetFunction.CountA(Worksheets(1).Range("D:D"))

For k = 2 To TotRighe
If IsEmpty(tb.Cells(k, 1)) Then tb.Rows(k).EntireRow.Delete
Next k
Application.Goto Reference:=Worksheets(1).Cells(2, 1), Scroll:=True

End Sub


'Ciao.


0 new messages