bonjour ,
est -t-il possible de convertir une chaîne de caractère comprenant une adresse mail en lien hypertexte ??
bonjour ,
est -t-il possible de convertir une chaîne de caractère comprenant une adresse mail en lien hypertexte ??
Il suffit d'utiliser l'API ShellExecute pour lancer un lien mailto.
Déclaration de l'API :
Puis si l'adresse est dans le champ "xxx" un bouton "EnvoiMail" avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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
Cordialement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Private Sub EnvoiMail_Click() Dim URL As String URL = Me.xxx ShellExecute 0, "Open", "mailto:" & URL, 0, ".", vbNormalFocus End Sub
Une autre solution est de modifier l’apparence du texte quand c’est une adresse mail, de gérer le curseur au survol du champ et de gérer par un message la possibilité d’éditer le champ si on ne veut pas envoyer de mail mais bien modifier l’adresse.
Voici les codes nécessaires.
Dans un formulaire où il y a un champ texte nommé « Courriel »
1. Déclarations
2. Fonctions
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" _ (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long Private Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long 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
Pour gérer les événements relatifs au champ Courriel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Function ChangeCursorToHand() Dim hCur hCur = LoadCursor(0, 32649) 'Code Main par exemple If (hCur > 0) Then SetCursor hCur End If End Function
Et enfin pour afficher le texte d'une adresse en bleu et souligné :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Private Sub Courriel_Click() If IsNull(Me.Courriel) = False And Me.Courriel Like "*@*" Then Msg = "Voulez-vous envoyer un mail à cette adresse?" Style = vbYesNo + vbInformation + vbDefaultButton2 Response = MsgBox(Msg, Style) If Response = vbYes Then ' L'utilisateur a choisi Oui. Dim URL As String URL = Me.Courriel ShellExecute 0, "Open", "mailto:" & URL, 0, ".", vbNormalFocus Exit Sub Else Exit Sub End If Else Exit Sub End If End Sub Private Sub Courriel_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Transformation du curseur en main lors du passage sur le champ If IsNull(Me.Courriel) = False And Me.Courriel Like "*@*" Then Call ChangeCursorToHand Else Exit Sub End If End Sub Private Sub Détail_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Remettre le curseur par défaut en dehors du survol de ladresse mail Screen.MousePointer = 0 'Curseur par défaut End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub Form_Current() 'Modifie lapparence du texte si cest une adresse mail If IsNull(Me.Courriel) = False And Me.Courriel Like "*@*" Then Me.Courriel.ForeColor = RGB(61, 61, 255) Me.Courriel.FontUnderline = True Else Me.Courriel.ForeColor = QBColor(0) Me.Courriel.FontUnderline = False End If End Sub
salut RobiPMS et bienvenu rominous41,
"comprenant" ou "constituant" une adresse mail?Envoyé par rominous41
sans sortir l'artillerie lourde:
si le champ est une adresse mail mais typé texte, pour le transformer en lien hypertexte:
dans la source du formulaire il faut un champ "mymail":
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part SELECT mailtext & "#mailto:" & mailtext & "#" AS mymail, * FROM maTable;ajouter un controle pour le champ "mymail" et changer les propriétés:
Is Hyperlink: Oui
Afficher comme lien hypertext: Toujours
éventuellement adapter le SQL pour extraire l'email dans le cas "comprenant".
![]()
oui ma chaîne de caractère constitue en elle même l'adresse mail
Partager