Autres Microsoft EXCEL et OUTLOOK

danone16

XLDnaute Nouveau
Bonsoir,
Je fais un programme envoie mail en VBA Excel avec Outlook. Mon problème si Excel et Outlook ont la même version aucun problème mais si versions différentes bug ouvre la Outlook sur la version Excel.
Pouvez-vous m'aider sur un développement VBA.
Merci
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, danone16

=>danone16
Oui, on peut aider puisque que nous somme sur un forum d'entraide.
:rolleyes:

Mais on aide mieux quand on peut lire le code VBA qu'utilise le demandeur.

Donc CTRL+C puis CTRL+V ici dans ton message ;)

NB: Et surtout pas d'image, juste le code de ta macro.
 

danone16

XLDnaute Nouveau
exemple trouvé sur forum

Sub EnvoyerEmail(ByVal Sujet As String, ByVal Destinataire As String, ByVal Destinataire1 As String, ByVal ContenuEmail As String, Optional ByVal PieceJointe As String)


On Error GoTo EnvoyerEmailErreur

'définition des variables
Dim Outlook As Object
Dim MailItem As Object



If Len(ContenuEmail) = 0 Then
MsgBox "Mail non envoyé car vide", vbOKOnly, "Message"
Exit Sub
End If

'préparer Outlook
'PreparerOutlook Outlook
Set Outlook = CreateObject("outlook.application")
Set MailItem = Outlook.CreateItem(0)

'création de l'email
With MailItem
.To = Destinataire
.CC = Destinataire1
.Subject = Sujet

'CHOIX DU FORMAT
'----------------------


If PieceJointe <> "" Then .Attachments.Add PieceJointe

.Display '<- affiche l'email (si vous ne voulez pas l'afficher, mettez cette ligne en commentaire)
'.Save '<- sauvegarde l'email avant l'envoi (pour ne pas le sauvegarder, mettez cette ligne en commentaire)
'.Send '<- envoie l'email (si vous voulez seulement préparer l'email et l'envoyer manuellement, mettez cette ligne en commentaire)
End With

'nettoyage...
' If (Not (MailItem Is Nothing)) Then Set MailItem = Nothing
' If (Not (Outlook Is Nothing)) Then Set Outlook = Nothing

Exit Sub
EnvoyerEmailErreur:
' If (Not (MailItem Is Nothing)) Then Set MailItem = Nothing
' If (Not (Outlook Is Nothing)) Then Set Outlook = Nothing

MsgBox "Le mail n'a pas pu être envoyé...", vbCritical, "Erreur"
End Sub


Private Sub PreparerOutlook(ByRef Outlook As Object)
'par Excel-Malin.com ( https://excel-malin.com )

'------------------------------------------------------------------------------------------------
'Ce code vérifie si Outlook est prêt à envoyer des emails... Et s'il ne l'est pas, il le prépare.
'------------------------------------------------------------------------------------------------

On Error Resume Next
'vérification si Outlook est ouvert
Set Outlook = GetObject(, "Outlook.Application")

If (Err.Number > 0) Then 'si Outlook n'est pas ouvert, une instance est ouverte
Err.Clear
Set Outlook = CreateObject("Outlook.Application")

If (Err.Number > 0) Then
MsgBox "Une erreur est survenue lors de l'ouverture de Outlook..."
Exit Sub
Else
End If

Else 'si Outlook est ouvert, l'instance existante est utilisée
End If

End Sub
 

Staple1600

XLDnaute Barbatruc
Re

[petit conseil en passant]
Utilises les balises BBCodes , ton message sera plus lisible
NB: excel-malin n'est pas excel-downloads
Enrichi (BBcode):
Sub EnvoyerEmail(ByVal Sujet As String, ByVal Destinataire As String, ByVal Destinataire1 As String, ByVal ContenuEmail As String, Optional ByVal PieceJointe As String)


On Error GoTo EnvoyerEmailErreur

'définition des variables
Dim Outlook As Object
Dim MailItem As Object



If Len(ContenuEmail) = 0 Then
MsgBox "Mail non envoyé car vide", vbOKOnly, "Message"
Exit Sub
End If

'préparer Outlook
'PreparerOutlook Outlook
Set Outlook = CreateObject("outlook.application")
Set MailItem = Outlook.CreateItem(0)

'création de l'email
With MailItem
.To = Destinataire
.CC = Destinataire1
.Subject = Sujet

'CHOIX DU FORMAT
'----------------------


If PieceJointe <> "" Then .Attachments.Add PieceJointe

.Display '<- affiche l'email (si vous ne voulez pas l'afficher, mettez cette ligne en commentaire)
'.Save '<- sauvegarde l'email avant l'envoi (pour ne pas le sauvegarder, mettez cette ligne en commentaire)
'.Send '<- envoie l'email (si vous voulez seulement préparer l'email et l'envoyer manuellement, mettez cette ligne en commentaire)
End With

'nettoyage...
' If (Not (MailItem Is Nothing)) Then Set MailItem = Nothing
' If (Not (Outlook Is Nothing)) Then Set Outlook = Nothing

Exit Sub
EnvoyerEmailErreur:
' If (Not (MailItem Is Nothing)) Then Set MailItem = Nothing
' If (Not (Outlook Is Nothing)) Then Set Outlook = Nothing

MsgBox "Le mail n'a pas pu être envoyé...", vbCritical, "Erreur"
End Sub


Private Sub PreparerOutlook(ByRef Outlook As Object)
'par Excel-Malin.com ( https://excel-malin.com )
'------------------------------------------------------------------------------------------------
'Ce code vérifie si Outlook est prêt à envoyer des emails... Et s'il ne l'est pas, il le prépare.
'------------------------------------------------------------------------------------------------
On Error Resume Next
'vérification si Outlook est ouvert
Set Outlook = GetObject(, "Outlook.Application")
If (Err.Number > 0) Then 'si Outlook n'est pas ouvert, une instance est ouverte
Err.Clear
Set Outlook = CreateObject("Outlook.Application")
If (Err.Number > 0) Then
MsgBox "Une erreur est survenue lors de l'ouverture de Outlook..."
Exit Sub
Else
End If
Else 'si Outlook est ouvert, l'instance existante est utilisée
End If
End Sub
 

Discussions similaires

Réponses
2
Affichages
256

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87