Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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 :
c7f734a7-b5a7-4c41-a2ac-1ac64e4b7d8b@s17g2000yqs.googlegroups.com...
Bonjour tout le monde,
Je voudrais savoir si c'est possible de mettre un lien hypertext dans
un textBox par exemple.
si oui, comment.
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
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"!
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"!
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"!
mais j'aimerais ouvrir un fichier au lieu d'une page web.
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.
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 :
8e6ae664-136b-4c0f-beae-58844dbc3061@m3g2000pre.googlegroups.com...
Merci beaucoup,
mais j'aimerais ouvrir un fichier au lieu d'une page web.
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.
joseph84
Merci beaucoup,
j'aimerais ouvrir un fichier au lieu d'une page web
Merci beaucoup,
j'aimerais ouvrir un fichier au lieu d'une page web