krashone
00giovedì 14 marzo 2019 07:04
Buongiorno,
sto cercando di applicare quanto in oggetto
utilizzando il seguente codice
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$2" Then
Call MiaMacro
End If
End Sub
Nella cella D2 però c'è una formula che ottiene il numero massimo
tra A2 e C2, può essere questo il motivo del suo non funzionamento ?
come risolvo ?
Grazie 1000
locatevaresino
00giovedì 14 marzo 2019 10:03
ciao
un esempio
Option Explicit
Dim ValoreD2 As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("D2").Value <> ValoreD2 Then ''Target.Address = "$D$2" Then
MsgBox "La cella D2 a cambiato il suo valore" ''Call MiaMacro
End If
ValoreD2 = Range("D2")
End Sub
GiuseppeMN
00giovedì 14 marzo 2019 10:57
Buona giornata, krashone:
consentimi un saluto all'ottimo @locatevaresino.
Potresti provare con:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2,C2")) Is Nothing Then Call TuaMacro
End Sub
Sub TuaMacro()
MsgBox "Mio Codice VBA"
End Sub
A disposizione.
Buon Lavoro.
Giuseppe
tanimon
00giovedì 14 marzo 2019 20:21
ciao a tutti
ed un saluto a Locate e Giuseppe
che ne pensate di questa soluzione?
vb
Dim valore As Integer
Private Sub Worksheet_Change(ByVal Target As Range)
If valore <> Range("d2").Value Then
Call TuaMacro
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
valore = Range("d2").Value
End Sub
Sub TuaMacro()
MsgBox "ciao"
End Sub
a me pare funziona
EDIT
per il verbo: "funzioni"
ciao
Frank
krashone
00venerdì 15 marzo 2019 03:11
Tutte le soluzioni da voi proposte a me funzionano solamente se all'interno della cella D2 non è presente nessuna formula.
Come si spiega ?
Grazie
GiuseppeMN
00venerdì 15 marzo 2019 07:14
Prima di indicare una possibile soluzione, normalmente ne verifico la funzionalità.
Fai sapere dove riscontri il Problema.
Giuseppe
tanimon
00venerdì 15 marzo 2019 07:15
Se le provi su un file nuovo, te lo spieghi da solo.
Frank
Edit:
Ciao Giuseppe