Private Sub Totali_Click()
Dim NmrRigaAttiva As Long, NmrRigaTotInz As Long, NmrRigaTotFin As Long 'Attribuisco il tipo di variabile a intero lungo
Dim SelezRigheDaTot As Range, SelezRigheDaTotProvv As Range 'Definisco la variabile di tipo Range (selezione)
Dim DscRiga As String 'Attribuisco il tipo di variabile a stringa
ThisWorkbook.Activate 'Attiva il file per controllare
NmrRigaAttiva = ActiveCell.Row ' la posizione del cursore
Set SelezRigheDaTot = Nothing 'Azzera la variabile Range
Set SelezRigheDaTotProvv = Nothing 'Azzera la variabile Range
NmrRigaTotInz = 7 'Assegno il valore della riga iniziale
For NmrRigaTotFin = 7 To NmrRigaAttiva 'Esegue un ciclo for per cercare a quale riga corrisponde il titolo
DscRiga = Worksheets(1).Cells(NmrRigaTotFin, 1) 'Legge il contenuto della cella attiva
If DscRiga Like "*T*" Then
Set SelezRigheDaTotProvv = Worksheets(1).Range(Cells(NmrRigaTotInz, 6), _
Cells(NmrRigaTotFin - 1, 6)) 'Imposta la selezione delle celle dal riga del titolo fino alla riga attiva
NmrRigaTitInz = NmrRigaTitFin + 1
NmrRigaTitFin = NmrRigaTitFin + 1
End If
If SelezRigheDaTot Is Nothing Then
If Not SelezRigheDaTotProvv Is Nothing Then
Set SelezRigheDaTot = SelezRigheDaTotProvv
End If
ElseIf Not SelezRigheDaTotProvv Is Nothing Then
Set SelezRigheDaTot = Union(SelezRigheDaTotProvv, SelezRigheDaTot)
End If
Next NmrRigaTotFin
Set SelezRigheDaTot = Worksheets(1).Range(Cells(NmrRigaTotInz, 6), _
Cells(NmrRigaTotFin - 2, 6)) 'Imposta la selezione delle celle dal riga del titolo fino alla riga attiva
If Not SelezRigheDaTotProvv Is Nothing Then
If Not SelezRigheDaTot Is Nothing Then Set SelezRigheDaTot = Union(SelezRigheDaTotProvv, SelezRigheDaTot)
End If
Worksheets(1).Cells(NmrRigaAttiva, 6).FormulaLocal = _
"=somma(" & SelezRigheDaTot.Address & ")" 'Trascrive la formula delle celle selezionate precedentemente
End Sub
|