Lancer Outlook via VBA
Résolu
Villette54
Messages postés
300
Date d'inscription
Statut
Membre
Dernière intervention
-
eric2027 Messages postés 296 Statut Membre -
eric2027 Messages postés 296 Statut Membre -
Bonjour,
J'ai besoin d'aide pour résoudre un petit soucis.
Dans un de mes fichiers Excel, j'ai une macro qui permet l'envoie automatique d'un mail via Outlook. Celle-ci fonctionne très bien à une condition : que Outlook soit ouvert avant l'exécution de la macro, or ce n'est pas toujours le cas pour les utilisateurs de ce fichier...
J'aurais donc aimé savoir si une "solution technique" pouvait palier à ce problème, à savoir ouvrir outlook via VBA si celui-ci n'est pas déjà ouvert.
Dans le cas contraire je diffuserais alors une information, et ajouterais une msgbox avant l'exécution de la macro pour informer les personnes concernées.
Pour info, voici la partie de ma macro pour l'envoie du mail :
Merci d'avance pour votre aide.
J'ai besoin d'aide pour résoudre un petit soucis.
Dans un de mes fichiers Excel, j'ai une macro qui permet l'envoie automatique d'un mail via Outlook. Celle-ci fonctionne très bien à une condition : que Outlook soit ouvert avant l'exécution de la macro, or ce n'est pas toujours le cas pour les utilisateurs de ce fichier...
J'aurais donc aimé savoir si une "solution technique" pouvait palier à ce problème, à savoir ouvrir outlook via VBA si celui-ci n'est pas déjà ouvert.
Dans le cas contraire je diffuserais alors une information, et ajouterais une msgbox avant l'exécution de la macro pour informer les personnes concernées.
Pour info, voici la partie de ma macro pour l'envoie du mail :
Dim ObjOutlook Dim oBjMail Set ObjOutlook = CreateObject("outlook.application") Set oBjMail = ObjOutlook.CreateItem(olMailItem) If pj = "Faux" Then Exit Sub If VarType(pj) = vbBoolean Then Exit Sub Corps = "Bonjour," & vbCrLf & "<br>" _ & vbCrLf & "<br>" _ & "Le RDP du " & ThisWorkbook.Sheets(2).[C92].Value & " concernant la zone : " & ThisWorkbook.Sheets(1).[C17].Value & " est consultable en cliquant sur le lien ci-dessous :" & vbCrLf & "<br>" _ & "<HTML><BODY>" _ & "<A href=U:\Prévention\RDP\Nouveaux_RDP\>U:\Prévention\RDP\Nouveaux_RDP\</A>" _ & "</BODY></HTML>" _ & vbCrLf & "<br>" _ & "Bien à vous," With oBjMail .To = "xxx@xxx.com" .Subject = "Blabla: " & ThisWorkbook.Sheets(2).[E92].Value .HTMLBody = "" .BodyFormat = 2 '.GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute .HTMLBody = Corps & oBjMail.HTMLBody .Send End With
Merci d'avance pour votre aide.
A voir également:
- Vba outlook
- Synchroniser agenda google et outlook - Guide
- Copie cachée outlook - Guide
- Incompatibilité de type vba ✓ - Forum Programmation
- Supprimer compte outlook - Guide
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
9 réponses
Bonjour,
sans la virgule cette fois-ci !!!!!!!
un exemple qui marche chez moi:
'Il faut activer la référence "Microsoft Outlook Library" Avant de lancer cette macro,
' Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"
'Ok
sans la virgule cette fois-ci !!!!!!!
un exemple qui marche chez moi:
'Il faut activer la référence "Microsoft Outlook Library" Avant de lancer cette macro,
' Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"
'Ok
Sub SendMail_Outlook()
Dim OL As Object
Dim OLmail As Object
On Error Resume Next
Set OLk_Appli = GetObject("Outlook.Application")
If OLk_Appli Is Nothing Then
'mettre le bon chemin outlook
OLk_OK = Shell("C:\Program Files (x86)\Microsoft Office\Office15\outlook.exe", 1)
End If
Set OL = CreateObject("Outlook.Application")
Set OLmail = OL.CreateItem(0)
With OLmail
.To = "fabiengaluchet@gmail.com"
.Subject = "test_envoi"
.Body = "BLABLA"
'.display
.Send
End With
Set OLmail = Nothing
Set OL = Nothing
Set OLk_Appli = Nothing
End Sub
Merci pour ce code, mais il ne fonctionne pas chez moi (je parle uniquement pour la partie ouverture de Outlook, le reste fonctionne parfaitement.
Je détaillerai plus mon problème dès que j'aurais un peu de temps.
Encore merci, bonne journée.