Ciao prova a vedere questo esempio se ti può dare qualche spunto:
https://www.dropbox.com/s/eir00nhg4jrme3m/Modificare%20hyperlink%20associato%20al%20testo%20di%20una%20cella.xlsm?dl=0
Nel Foglio1 ho inserito una tabella dove nelle celle della colonna Nazione è presente la convalida con l'elenco delle nazioni.
L'elenco è presente nel Foglio2 in una seconda tabella di raccordo tra il nome della Nazione e l'acronimo.
Nel modulo del Foglio1 ho utilizzato l'evento change inserendo questo codice:
'---
Private Sub Worksheet_Change(ByVal Target As Range)
Const sPrefissoLink As String = "https://percorso1/"
Const sSuffissoLink As String = "/info"
Const sNomeTabellaLink As String = "TabellaLink"
Const sNomeFoglioTabellaRaccordo As String = "Foglio2"
Const sNomeTabellaRaccordo As String = "TabellaRaccordo"
Const sNomeColonnaNazioni As String = "Nazione"
Const sNomeColonnaLink As String = "Iperlink"
Const sNomeColonnaAcronimi As String = "Acronimo"
Dim oLo1 As ListObject, oLo2 As ListObject
Dim rng As Range, r As Range
Dim iRow As Long
Dim sNazione As String, sLink As String, sAcronimoPaese As String
Dim iPos As Variant
Dim rLink As Range
On Error GoTo Errore
Set oLo1 = Me.ListObjects(sNomeTabellaLink)
Set oLo2 = ThisWorkbook.Worksheets(sNomeFoglioTabellaRaccordo).ListObjects(sNomeTabellaRaccordo)
Application.EnableEvents = False
Set rng = Intersect(Target, oLo1.ListColumns(sNomeColonnaNazioni).DataBodyRange)
If Not rng Is Nothing Then
For Each r In rng
sNazione = r.Value
iRow = r.Row - oLo1.Range.Row
Set rLink = oLo1.ListColumns(sNomeColonnaLink).DataBodyRange(iRow)
If sNazione <> "" Then
iPos = Application.Match(sNazione, oLo2.ListColumns(sNomeColonnaNazioni).DataBodyRange, 0)
If Not IsError(iPos) Then
sAcronimoPaese = oLo2.ListColumns(sNomeColonnaAcronimi).DataBodyRange(iPos).Value
sLink = sPrefissoLink & sAcronimoPaese & sSuffissoLink
rLink.Hyperlinks.Add Anchor:=rLink, _
Address:=sLink, _
TextToDisplay:=sLink
Else
rLink.ClearContents
End If
Else
rLink.ClearContents
End If
Next r
End If
RiprendiErrore:
Application.EnableEvents = True
Exit Sub
Errore:
MsgBox "Si è verificato un errore!" & vbNewLine & _
"Errore n. " & Err.Number & vbNewLine & _
Err.Number, vbCritical, "Errore VBA"
Resume RiprendiErrore:
End Sub
'---
Selezionando una nazione dall'elenco a discesa della convalida nella cella della colonna Iperlink viene inserito un link composto dal prefisso "https://percorso1/", dall'acronimo della nazione (es. Italia=ITA) e infine dal suffisso finale "/info".
Se viene cancellato il contenuto della cella della colonna Nazione viene cancellato anche il link nella corrispondete cella della colonna Iperlink.
Vedi tu se ti può essere di spunto.