Ciao Masfur, una possibile soluzione è questa, mi riferisco al tuo file, ho reso sensibile alla selezione la cella "C1" quindi nel codice del foglio1 devi inserire questo codice, poi seleziona una cella qualsiasi e quando vuoi il risultato vai su "C1" che lancia la macro.
Private Sub Worksheet_selectionChange(ByVal Target As Range)
Application.EnableEvents = False
ind = Target.Address(RowAbsolute:=False, ColumnAbsolute:=False)
If ind = "C1" Then vai
Application.EnableEvents = True
End Sub
in effeti lancia una macro intitolata "vai", ma puoi cambiare anche il nome della macro, logicamente cambiando anche il nome alla macro.
La macro è questa e devi inserirla in un modulo, crei il modulo e la copi.
Sub vai()
r = Cells(Rows.Count, 1).End(xlUp).Row
tot = 0
For y = 1 To r
If Cells(y, 1) = "articolo" Then tot = tot + Cells(y, 2)
If Cells(y, 1) = "totale" Then
Cells(y, 2) = tot
tot = 0
End If
Next y
End Sub
che cosa fa la macro, conta quante righe sono occupate, poi controlla tutta la colonna "A" dove è scritto "articolo", prende il dato della colonna "B" e lo somma nella variabile "tot", appena trova nella colonna "A" la parola "totale" scarica la variabile "tot" nella cella "B" corrispondente, mette la variabile a 0 zero per un nuovo calcolo successivo, e questo fino alla fine dei dati.
una nota ATTENZIONE che i nomi "totale" e "articolo" sono case sensitive, quindi fa differenza tra maiuscolo e minuscolo, nel caso che "articolo" da quello che capisco può essere diverso ogni volta, me lo fai sapere che ti modifico la macro in modo che veda diversi articolo, anzi la scrivo così non c'è bisogno di aspettare
sostituisci la prima riga con la seconda
If Cells(y, 1) = "articolo" Then tot = tot + Cells(y, 2)
con questa
If Cells(y, 1) <> "totale" Then tot = tot + Cells(y, 2)
in questo modo quando trova il nome "totale" scrive il totale, per tutte le altre le somma.
per il momento ti saluto fammi sapere Ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie
clicca qui