Private Sub Worksheet_Change(ByVal Target As Range)
'qualsiasi modifica sull'intera colonna A ...
If Intersect(Target, Range("A:A")) Is Nothing Then
Exit Sub
Else
'...richiamerà la macro calcola
calcola
End If
End Sub
Poi, inserisci un modulo e scrivi il seguente codice:
Sub calcola()
'Assegnamo la formula alla prima cella e la nominiamo "calc"
ActiveWorkbook.Names.Add _
Name:="calc", _
RefersToR1C1:="=EVALUATE(RC[-1])"
'calcoliamo fino a dove sono scritti i dati nella colonna A
fine = Cells(Rows.Count, "A").End(xlUp).Row
'inizia il ciclo per scrivere la formula fino all'ultimo dato
For i = 1 To fine
'scrivo la formula nella colonna B
Range("B" & i) = "=calc"
Next i
End Sub |