Envoie de mail Outlook depuis un formulaire vba
Bonjour,
Je dois actuellement développer une application excel permettant à l'utilisateur de choisir (parmi une liste prédéfinie) un mail type et que selon le mail type sélectionné, s'affiche des textbox pour que l'utilisateur remplisse les informations nécessaires pour remplir les parties du mail type qui contient des balises (exemple : #TEL) pour les remplacer par ce qu'il doit mettre. Voici un exemple de ce que j'ai fait
Code:
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
| Private Sub ChoixMailType_Change()
'///////////////////////// 01 //////////////////
If ChoixMailType.Value = "01-ASTREINTE IM Samedi XX.oft" Then
For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "Label" And Ctrl.Name <> "LabelJM01" And Ctrl.Name <> "LabelTel01" Then
Ctrl.Visible = False
Else
If TypeName(Ctrl) = "TextBox" And Ctrl.Name <> "TextBoxJM01" And Ctrl.Name <> "TextBoxTel01" Then
Ctrl.Visible = False
Else
If TypeName(Ctrl) = "ComboBox" And Ctrl.Name <> "ChoixMailType" Then
Ctrl.Visible = False
Else
If TypeName(Ctrl) = "CommandButton" And Ctrl.Name <> "Valider" Then
Ctrl.Visible = False
Else
Ctrl.Visible = True
End If
End If
End If
End If
Next Ctrl
End If
End Sub |
Jusque la tout va bien, ce type de code ne me pose pas de problème.
Vient ensuite la partie mail, lorsque l'utilisateur a rentré ses données dans les textbox, il faut qu'il appuie sur le bouton valider.
J'avais déjà du gérer l'envoie de mail par vba, mais tout était créé en HTML, je pourrai procéder de la même façon sauf que j'ai 29 mails types donc impossible.
Voici le code (non fonctionnel) pour la partie mail. Ce que je veux que ce code fasse est que il ouvre le mail outlook en changeant les balises adéquates.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Private Sub Valider_Click()
Dim AD As String
AD = ThisWorkbook.Path & "\" & MailingType.ChoixMailType.Value 'MailingType étant le formulaire et ChoixMailType le combobox contenant la liste des mails types.
If ChoixMailType.Value = "01-ASTREINTE IM Samedi XX.oft" Then
Set AppOtk = CreateObject(Outlook.Application) 'le bug est à cette ligne
Set DocOft = AppOtk.Session.OpenSharedItem(AD)
With DocOft
.Bookmarks("#JM").Range.Text = TextBoxJM01.Value
.Bookmarks("#TEl").Range.Text = TextBoxTel01.Value
End With
End If
Unload Me
End Sub |
En espérant avoir bien détaillé mon problème et que quelqu'un puisse m'apporter son savoir !
Merci !