data validation contenet hyperlink

berna99

New Member
Joined
Aug 25, 2021
Messages
4
Office Version
  1. 2007
Platform
  1. Windows
Salve a tutti, volevo sapere se era possibile tramite l'utilizzo del vba intercettare un link ed inserirlo in un data validation.
Allego un file di esempio il risultato che ottengo nella cella v3, vorrei spostarlo all'interno della convalida dei dati.

http://www.filedropper.com/datahyper1
 

Excel Facts

How can you automate Excel?
Press Alt+F11 from Windows Excel to open the Visual Basic for Applications (VBA) editor.
Leggo solo ora...
Nel caso non abbia gia' risolto, puoi spiegare meglio quale problema vorresti risolvere e quali sono i dati di partenza?

Se la tua situazione fosse
-hai l'elenco dei link in colonna F
-hai una descrizione in colonna O
-hai in U3 inserito una convalida per poter scegliere una tra le descrizioni
-Vorresti a questo punto che cliccando su U3 venga attivato il corrispondente link
Ecco, se la tua situazione fosse questa allora probabilmente potresti sfruttare l'evento FollowHyperlink:
-metti in U3 un hyperlink che punti alla stessa cella U3
-poi tasto dx sul tab col nome del foglio su cui stai lavorando; scegli Visualizza codice
-copia questo codice e incollalo nel modulo vba che così e' stato aperto:
VBA Code:
#If VBA7 Then
   Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
        ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, _
        ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
#Else
   Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
        ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
        ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
#End If


Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
If Target.Parent.Address = "$U$3" Then
    mymatch = Application.Match(Range("U3").Value, Range("O1:O50"), False)
    If Not IsError(mymatch) Then
        myHL = Range("F1").Cells(mymatch, 1).Value
        lngX = ShellExecute(vbNull, "Open", myHL, "", "", vbMaximizedFocus)
    End If
End If
End Sub
In questo modo quando Excel attiva l'hyperlink per "andare" sulla stessa cella U3 scattera' l'evento FollowHyperlink che cerchera' il link corrispondente alla descrizione contenuta in U3 e aprira' il link usando l'applicazione di default.

Ciao
 
Upvote 0
Solution
Ciao grazie mille per la risposta, ho testato il tuo codice e funziona tutto egregiamente. Spero di riuscire ad adattarlo al mio file originale facilmente, unica cosa che non capisco perché quando ci clicco sopra si apre due volte la pagina web
 
Upvote 0
Si apre SEMPRE due volte la stessa pagina, indipendentemente dalla descrizione scelta? O si aprono 2 pagine, una fissa e l'altra corrispondente alla descrizione prescelta?
Nel secondo caso puo' essere che la cella su cui clicchi ha gia' un hyperlink alla "pagina fissa"; eliminalo e inserisci invece un hyperlink che punti alla stessa cella excel (non fa niente, ma scatena l'evento FollowHyperlink che e' quello che ci serve)

Ciao
 
Upvote 0
O si aprono 2 pagine, una fissa e l'altra corrispondente alla descrizione prescelta?
si succede proprio questo
Nel secondo caso puo' essere che la cella su cui clicchi ha gia' un hyperlink alla "pagina fissa"; eliminalo e inserisci invece un hyperlink che punti alla stessa cella excel (non fa niente, ma scatena l'evento FollowHyperlink che e' quello che ci serve)
in che senso qua non ho capito un hyperlink che punti alla cella stessa?
 
Upvote 0
Seleziona la cella con convalida, es U3
1) elimina il link esistente: Menu /Inserisci /Collegamento; premi Rimuovi collegamento (opzione non disponibile se la cella non contiene un hyperlink)
2) metti il link a U3: seleziona U3 se necessario; Menu /Inserisci /Collegamento; scegli Collega a=Inserisci nel documento; nella casella "digitare il riferimento di cella" scrivi U3; completa con Ok
Ora quando clicchi sul contenuto di U3 l'hyperlink ti porta su U3 (cioe' non fa nulla di evidente); contemporaneamente scatta l'evento FollowHyperlink che aprira' la pagina web corrispondente a quella descrizione

Fai sapere...
 
Upvote 0

Forum statistics

Threads
1,224,867
Messages
6,181,480
Members
453,046
Latest member
Excelvbaexpert

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top