Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Peppe,
ho provato e ci siamo quasi.
Come posso cambiare il testo della msg box a seconda che va nella cella T3 o nella cella V3
Ho provato a modificare questa parte
Res2 = MsgBox(Prompt:="Vai a cella " & Rng2.Address(0, 0) & "?", _
Buttons:=vbYesNo, _
Title:="REPORT")
If Res2 = vbYes Then
Rng2.Select
End If
Else
Rng2 = Intersect(Rng.EntireRow, Me.Columns(sSeconda_Colonna_Destinatione))
Res2 = MsgBox(Prompt:="Vai a cella " & Rng2.Address(0, 0) & "?", _
Buttons:=vbYesNo, _
Title:="REPORT")
If Res2 = vbYes Then
Rng2.Cells(1).Select
ma se cambio esce sempre Vai a cella.
è possibile far in modo che quando vengono selezionati i valori che portano alla colonna T impostiamo un messaggio e quando vengono selezionati i valori che portano alla colonna V un altro messaggio?
Prova qualcosa del genere:
'========>>
Option Explicit
'-------->>
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, Rng2 As Range
Dim arrConvalida As Variant
Dim arr As Variant, arr2 As Variant
Dim Res As Variant, Res2 As Variant
Dim Res3 As VbMsgBoxResult
Dim sMsg As String, sTitolo As String
Const sIntervallo As String = "S2:S10"
Const sPrima\_Colonna\_Destinatione As String = "T" '<<=== Modifica
Const sSeconda\_Colonna\_Destinatione As String = "V" '<<=== Modifica
Const sElenco As String = "alfa,beta,gamma" '<<=== Modifica
Const sElenco2 As String = "rosso,giallo,viola" '<<=== Modifica
Set Rng = Intersect(Me.Range(sIntervallo), Target)
If Not Rng Is Nothing Then
arr = Split(sElenco, ",")
arr2 = Split(sElenco2, ",")
Res = Application.Match(Rng.Value, arr, 0)
If Not IsError(Res) Then
Set Rng2 = Intersect(Rng.EntireRow, Me.Columns(sPrima\_Colonna\_Destinatione))
sMsg = "**VorrestI selezionare la cella** " & Rng2.Address(0, 0) & "**?**"
sTitolo = "**COLONNA T !!**"
Else
Res2 = Application.Match(Rng.Value, arr2, 0)
If Not IsError(Res2) Then
Set Rng2 = Intersect(Rng.EntireRow, Me.Columns(sSeconda\_Colonna\_Destinatione))
sMsg = "**Vai a cella "** & Rng2.Address(0, 0) & "**?**"
sTitolo = "**COLONNA V !!!**"
End If
End If
Res2 = MsgBox(Prompt:=sMsg, \_
Buttons:=vbYesNo, \_
Title:=sTitolo)
If Res2 = vbYes Then
Rng2.Cells(1).Select
End If
End If
End Sub
'<<========
In breve, puoi inserire qualsiasi testo adatto per sostituire il testo, evidenziato in grassetto, tra le virgolette.
===
Regards,
Norman