in un foglio nella cella B2 ho inserito la formula =C2+C3 (formula
copiata nelle altre 4 righe).
Vorrei che quando varia la somma, venga lanciata una macro che aggiona
dei Textbox nello stesso foglio.
Ho provato ad inseire nello sheet2::
Public Sub AggiornaLabel()
Sheet2.TextBox1 = Sheet2.Range("B2")
Sheet2.TextBox2 = Sheet2.Range("B3")
Sheet2.TextBox3 = Sheet2.Range("B4")
Sheet2.TextBox4 = Sheet2.Range("B5")
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Sheet2.Range("B2:B5")) Is Nothing Then
AggiornaLabel
End If
End Sub
La macro funziona solo se entro in B2 e do l'invio.
Cosa sto sbagliando?
Vi ringrazio
Riccardo
Target.address è $C$2 e non rientra nel Range B2:B5.
Modifica in
If Not Intersect(Target, Sheet2.Range("C2:C6")) Is Nothing Then
Fai sapere se hai risolto grazie.
Bye!
Scossa
l'evento change non viene scatenato dal variare
del risultato di una formula ... in questo caso si
scatena l'evento calculate ...
consiglio di verificare la cella dove viene immesso
il dato manualmente e a cui poi la formula fa
riferimento ...
in alternativa dovresti monitorere la situazione con
l'evento calculate ... ma le cose si complicano, non
avenda tale evento un argomento Target
saluti
r
--
Come e dove incollare il codice:
http://www.rondebruin.nl/code.htm
Il mio ultimo lavoro ...
http://excelvba.altervista.org/blog/index.php/Excel-VBA/UsedRange-eccezioni-e-alternative.html
Ciao Riccardo.
Visual Basic a parte, che' mi sembra gia' ti sia stata data risposta, mi
domando perche' tu non colleghi permanentemente la TextBox alla cella
origine del valore. Risparmieresti codice e fastidi.
--
Maurizio Borrelli [Microsoft MVP Office System]
http://www.riolab.org/
Vi ringrazio per l'aiuto risolutivo!
Ricky