Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

lien Hypertext sur un controle

6 réponses
Avatar
joseph84
Bonjour tout le monde,

Je voudrais savoir si c'est possible de mettre un lien hypertext dans
un textBox par exemple.
si oui, comment.

Merci

6 réponses

Avatar
MichD
Bonjour,

En utilisant le contrôle "textbox" émanant de la boîte d'outils "Contrôle"

Oui, tu peux saisir une adresse internet dans ton textbox.
Tu peux lui affecter le format d'une adresse internet (texte en bleu et souligné)
Tu dois te rappeler que ce n'est que du texte...
Tu dois choisir un déclencheur qui exécutera une petite procédure qui ouvrira
la fenêtre internet à l'adresse saisie.

Exemple d'une procédure événementielle dans le module feuille où l'action se déroule :
Le choix de l'événement t'appartient...
'---------------------------------
Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If Me.TextBox1 <> "" Then
If Adresse_Internet_Valide(Me.TextBox1) Then
ThisWorkbook.FollowHyperlink Address:=Me.TextBox1, NewWindow:=True
End If
End If
End Sub
'---------------------------------

Adresse_Internet_Valide est une fonction personnalisée inspirée d'une procédure de Laurent Longre
qui valide si l'adresse saisie est valide avant de l'exécuter
Pour ce faire, tu copies ce qui suit dans un module standard :

'Déclaration des API dans le haut du module standard
Private Declare Function InternetOpenA Lib "Wininet" _
(ByVal lpszAgent As String, ByVal dwAccessType As Long, _
ByVal lpszProxyName As String, ByVal lpszProxyBypass As String, _
ByVal dwFlags As Long) As Long

Private Declare Function InternetCloseHandle Lib "Wininet" _
(ByVal hInternet As Long) As Long

Private Declare Function InternetOpenUrlA Lib "Wininet" _
(ByVal hInternet As Long, ByVal lpszUrl As String, _
ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, _
ByVal dwFlags As Long, ByVal dwContext As Long) As Long

Private Declare Function InternetQueryOptionA Lib "Wininet" _
(ByVal hInternet As Long, ByVal dwOption As Long, _
ByVal lpBuffer As String, lpdwBufferLength As Long) As Long

'--------------------------------------------------
Function Adresse_Internet_Valide(Adr As String) As Boolean
Dim hInt As Long, hInt2 As Long, Cell As Range
Dim Buffer As String, dwBufferLength As Long
hInt = InternetOpenA("Excel", 0, vbNullString, vbNullString, &H200000)
hInt2 = InternetOpenUrlA(hInt, Adr, vbNullString, 0, 0, 0)
If hInt2 Then
dwBufferLength = 0
InternetQueryOptionA hInt2, 34, vbNullString, dwBufferLength
Buffer = Space$(dwBufferLength - 1)
InternetQueryOptionA hInt2, 34, Buffer, dwBufferLength
If Buffer = Adr Or Buffer = Adr & "/" Then _
Adresse_Internet_Valide = True
InternetCloseHandle hInt2
Else
MsgBox "L'adresse """ & Adr & """ ne semble pas valide. Vérifier."
End If
InternetCloseHandle hInt
End Function
'--------------------------------------------------


MichD
--------------------------------------------
"joseph84" a écrit dans le message de groupe de discussion :


Bonjour tout le monde,

Je voudrais savoir si c'est possible de mettre un lien hypertext dans
un textBox par exemple.
si oui, comment.

Merci
Avatar
MichD
J'ajoute une note à la procédure de validation :

A ) l'adresse doit être complète incluant le Http:...

B ) Un message d'erreur" ne correspond pas forcément à une page inexistante. L'erreur peut être due à un serveur
temporairement défaillant.
De même, une URL "OK" ne correspond pas forcément à une page réellement existante, mais peut résulter d'une page
d'erreur "404 Not Found". Donc rien ne vaut les vérifications "manuelles"!


MichD
--------------------------------------------
Avatar
joseph84
Merci beaucoup,

mais j'aimerais ouvrir un fichier au lieu d'une page web.
Avatar
MichD
Si le chemin et le nom du fichier sont inscrits dans le textbox :

Choisis l'événement de ton choix.
Regarde dans l'aide VBA la méthode "FollowHyperlink", il y a d'autres paramètres
qui peuvent être utiles à ton application.

Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
With Me.TextBox1
If .Text <> "" Then
If Dir(.Value) <> "" Then
ThisWorkbook.FollowHyperlink Address:=.Value
else
Msgbox "Fichier introuvable à cette adresse."
End If
End If
End With
End Sub



MichD
--------------------------------------------
"joseph84" a écrit dans le message de groupe de discussion :


Merci beaucoup,

mais j'aimerais ouvrir un fichier au lieu d'une page web.
Avatar
joseph84
Merci beaucoup,

j'aimerais ouvrir un fichier au lieu d'une page web
Avatar
joseph84
Merci beaucoup

J'aimerais plutôt ouvrir un fichier au lieu d'un site web avec un lien
hypertexte