XL 2016 code Vba mail depuis excel

  • Initiateur de la discussion Initiateur de la discussion crurik
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

crurik

XLDnaute Nouveau
bonjour, mon soucie par rapport a mon code c'est que je suis obligé d’ouvrir outlook manuellement pour que le mail s'envoie car il reste bloquée dans la boite d'envoie si je ne le fait pas. Je tient a précisé que j'ai recherché par mais propre moyen mais je ne trouve pas la solution à mon problème. Merci d'avance pour le coup de main que vous pourriez m'apporter.

je vous laisse le code ici:

Option Explicit

Private Sub CommandButton1_Click()

Dim LeMail As Variant
Dim fichier As String

Set LeMail = CreateObject("Outlook.Application")

With LeMail.CreateItem(olMailItem)
.To = "adresse du destinataire"

fichier = "E:\"

.Attachments.Add fichier

.Display

End With


End Sub
 
Solution
Re


Dans ce cas, publie ta solution ici.
Elle pourrait servir à d'autres membres du forum avec une problématique similaire.
😉
la voici:
VB:
Function ExistenceFichier(sFichier As String) As Boolean

ExistenceFichier = Dir(sFichier) <> ""

End Function


Sub EnvoiMail()

Dim objMail As Outlook.MailItem
Dim outapp As Outlook.Application
Set outapp = New Outlook.Application

Dim X As Object
Dim sNomFichier As String

sNomFichier = Sheets("Config").Range("L11").Value
'Le chemin de Outlook.exe sera alors indiqué en case L11, dans un onglet nommé “Config” car il diffère effectivement en fonction de la version de votre 'Office, ... Chaque utilisateur pourra donc écrire dans cet onglet de configuration le chemin de leur Outlook.exe

On...
Re

=>crurik
Toujours pas de réponse à ma question...
🙄
Qu'affiche le Msgbox?
(voir message#10)
il affiche le chemin du fichier en cour
bonjour, mon soucie par rapport a mon code c'est que je suis obligé d’ouvrir outlook manuellement pour que le mail s'envoie car il reste bloquée dans la boite d'envoie si je ne le fait pas. Je tient a précisé que j'ai recherché par mais propre moyen mais je ne trouve pas la solution à mon problème. Merci d'avance pour le coup de main que vous pourriez m'apporter.

je vous laisse le code ici:

Option Explicit

Private Sub CommandButton1_Click()

Dim LeMail As Variant
Dim fichier As String

Set LeMail = CreateObject("Outlook.Application")

With LeMail.CreateItem(olMailItem)
.To = "adresse du destinataire"

fichier = "E:\"

.Attachments.Add fichier

.Display

End With


End Sub
La meilleur solution a mon problème pour envoyer un mail depuis excel si outlook ne l'envoie pas (reste dans le dossier envoie si pas d'ouverture manuel Outlook) c'est celle-ci:

VB:
Function ExistenceFichier(sFichier As String) As Boolean

ExistenceFichier = Dir(sFichier) <> ""

End Function


Sub EnvoiMail()

Dim objMail As Outlook.MailItem
Dim outapp As Outlook.Application
Set outapp = New Outlook.Application

Dim X As Object
Dim sNomFichier As String

sNomFichier = Sheets("Config").Range("L11").Value

On Error Resume Next
Set X = GetObject(, "Outlook.application")
If Err.Number <> 0 Then '
If ExistenceFichier(sNomFichier) Then
ID = Shell(sNomFichier)

Else
MsgBox "Je ne reconnais pas l'adresse de OUTLOOK.exe sur votre PC (A préciser dans l'onglet Config) !" & Chr(10) & Chr(10) & "Le fichier se trouve cependant bien envoyé dans la Outbox de Outlook ..." & Chr(10) & Chr(10) & "Il faudra donc lancer manuellement Outlook pour que le fichier soit envoyé !"
End If

Else

'MsgBox "Outlook est déja ouvert ..."

End If


Set outapp = New Outlook.Application
Dim olExplorer As Outlook.Explorer
Set objMail = outapp.CreateItem(olMailItem)
Dim mpf As Outlook.MAPIFolder

objMail.Subject = " 56"
'objMail.Body = "---> Ligne1 Blala bla..." & Chr(10) & " " & Chr(10) & " Ligne2 …" & Chr(10) & " " & Chr(10) & "Ligne3 …" & Chr(10) & Chr(10) & " Signature …" & Chr(10) & "Ligne finale …"
objMail.To = Range("a200")
objMail.CC = Range("a201")
objMail.Attachments.Add "E:\Bureau\Photos\Terrible.jpg"
'Destinataires en Copie ou en copie cachée
'objMail.BCC= «Adresse BCCopie2@swing.be»
objMail.Display '
'objMail.Send

Set outapp = Nothing
Set objMail = Nothing

End Sub

Si vous avez une commande macro pour minimiser Outlook a l'ouverture par rapport a ce code je suis preneur.
 
Re

=>crurik
"E:\Bureau\Photos\Terrible.jpg"
Ceci (au dessus) n'est pas ce que doit renvoyer ce qui suit (ci-dessou) et qu'on lisait dans le message#9
objMail.Attachments.Add ThisWorkbook.Path & "\" & ThisWorkbook.Name
Et qui expliquait le pourquoi du test proposé dans message#10.

NB:
[Pour infos]
Il y a beaucoup simple comme code
(et avec beaucoup moins de lignes)
 
Re

=>crurik
"E:\Bureau\Photos\Terrible.jpg"
Ceci (au dessus) n'est pas ce que doit renvoyer ce qui suit (ci-dessou) et qu'on lisait dans le message#9
objMail.Attachments.Add ThisWorkbook.Path & "\" & ThisWorkbook.Name
Et qui expliquait le pourquoi du test proposé dans message#10.

NB:
[Pour infos]
Il y a beaucoup simple comme code
(et avec beaucoup moins de lignes)
si vous avez plus simple en code avec les meme fonction je suis preneur. ce code vérifie: si outlook et en tache de fond, il l'ouvre si ce n'est pas le cas.
 
Re

=>crurik
Code non testé
(car comme je l'ai dit précédemment, je ne disposerai d'Outlook que lundi)
VB:
Sub test()
Dim fichier$
fichier = ThisWorkbook.Path & "\monimage.jpg"
envoyerMail "staple1600@domain.org", "TEST", fichier
End Sub
Private Sub envoyerMail(Destinataire$, Objet$, Pjointe$)
With CreateObject("Outlook.Application").CreateItem(0)
.Subject = Objet: .To = Destinataire: .attachments.Add Pjointe: .send
End With
End Sub
1) Pour tester, Outlook doit être ouvert (et en réduction dans la barre des tâches)
2) Il faut évidemment faire les adaptations idoines dans le code VBA de test.
 
Re

=>crurik
Code non testé
(car comme je l'ai dit précédemment, je ne disposerai d'Outlook que lundi)
VB:
Sub test()
Dim fichier$
fichier = ThisWorkbook.Path & "\monimage.jpg"
envoyerMail "staple1600@domain.org", "TEST", fichier
End Sub
Private Sub envoyerMail(Destinataire$, Objet$, Pjointe$)
With CreateObject("Outlook.Application").CreateItem(0)
.Subject = Objet: .To = Destinataire: .attachments.Add Pjointe: .send
End With
End Sub
1) Pour tester, Outlook doit être ouvert (et en réduction dans la barre des tâches)
2) Il faut évidemment faire les adaptations idoines dans le code VBA de test.
ton fichier marche que si outlook et en arrière plans donc il me faudrait la même chose mais avec l'ouverture d' outlook si celui-ci est fermer.
 
Re

=>crurik
1) Je n'ai pas joint de fichier
2) Tant mieux si le code VBA fonctionne, je n'aurai pas besoin de le tester lundi 😉
*:Et comme on n'est toujours pas lundi, bah tu devras attendre lundi ou qu'un autre XLDnaute prenne le relais. 😉

*: ou faire en sorte qu'Outlook soit ouvert
(comme évoqué précédemment ...)
Quand je bosse mon Outlook est ouvert dès que j'ouvre mon PC.
Et je ferme Outlook avant d'éteindre mon PC et ou de faire un WINDOWS+L sur ma session avant de débaucher.
 
ton fichier marche que si outlook et en arrière plans donc il me faudrait la même chose mais avec l'ouverture d' outlook si celui-ci est fermer.
je te remercie de
Re

=>crurik
1) Je n'ai pas joint de fichier
2) Tant mieux si le code VBA fonctionne, je n'aurai pas besoin de le tester lundi 😉
*:Et comme on n'est toujours pas lundi, bah tu devras attendre lundi ou qu'un autre XLDnaute prenne le relais. 😉

*: ou faire en sorte qu'Outlook soit ouvert
(comme évoqué précédemment ...)
Quand je bosse mon Outlook est ouvert dès que j'ouvre mon PC.
Et je ferme Outlook avant d'éteindre mon PC et ou de faire un WINDOWS+L sur ma session avant de débaucher.
Je te remercie d'avoir pris autant de temps avec moi pour résoudre le fichier excel que j'avais besoin ainsi qu' aux aide que j'ai pu avoir sur le forum j'ai enfin trouver ce qu'il me fallait.

ps: jetait pointilleux pour que excel s'ouvre automatiquement car a mon taf tout le monde n'est pas très alaise avec l'informatique et donc si Outlook pas ouvert en arrière plan les personne aurait envoyer le mail et il serait resté bloquer dans la boite d'envoie.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
640
Réponses
2
Affichages
719
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
795
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
387
Retour