SOYA
XLDnaute Occasionnel
Bonjour super-cerveaux,
Bon... Le sujet a été maintes et maintes fois abordé, et tant mieux car c'est ainsi que j'ai trouvé un code VBA d'envoi d'une feuille Excel par Outlook. Les premiers tests ont bien marché MAIS... Ben oui, il y a un mais...
Là où je travaille, lorsque nous voulons enregistrer un document Office, l'application obligatoire de gestion des documents affiche un formulaire d'enregistrement. Notre façon de le contourner est de maintenir la touche MAJ enfoncée pendant que nous cliquons sur Enregistrer sous, puis ensuite (toujours avec la touche MAJ enfoncée), sur Annuler (dans le formulaire de l'appli obligatoire), et enfin nous avons la possibilité d'enregistrer notre fichier là où nous le voulons, sur le C ou ailleurs...
Dans le code d'envoi ci-dessous, j'ai une erreur que le débogage pointe à la ligne que j'ai soulignée. Notre application obligatoire s'affiche et si je fais annuler, ça coince, ça bip, ça fait tout sauf ce que ça doit faire... Comment corriger le code pour contourner cette appli et envoyer directement ma feuille dans Outlook sans passer par "Enregistrer sous" quelque part ?
(J'ajoute pour information que lorsque j'ai adapté le code, tout a bien fonctionné pour mes premiers tests et ensuite patatra ! le problème s'est déclaré).
Sub SendEMail()
Dim NouveauClasseur As Workbook
Dim Destinataire As String
Destinataire = Range("I5").Value
Dim Objetmessage As String
Objetmessage = "Ouverture de dossier"
Application.ScreenUpdating = False
ThisWorkbook.Sheets("Form").Copy
Set NouveauClasseur = ActiveWorkbook
NouveauClasseur.SaveAs Objetmessage
Dim ol As Object, myItem As Object
Set ol = CreateObject("outlook.application")
Set myItem = ol.CreateItem(olMailItem)
myItem.To = Destinataire
myItem.Subject = Objetmessage
myItem.Body = "Bonjour,"
'fichier en cours d'utilisation envoyé en attaché:
myItem.Attachments.Add ActiveWorkbook.FullName
'myItem.Send
myItem.Display
'Set ol = Nothing
Application.DisplayAlerts = False
With NouveauClasseur
.ChangeFileAccess xlReadOnly
Kill .FullName
Application.DisplayAlerts = True
.Close False
End With
End Sub
Un gros merci à tous ceux qui m'accorderont un peu de leur temps.
Bon... Le sujet a été maintes et maintes fois abordé, et tant mieux car c'est ainsi que j'ai trouvé un code VBA d'envoi d'une feuille Excel par Outlook. Les premiers tests ont bien marché MAIS... Ben oui, il y a un mais...
Là où je travaille, lorsque nous voulons enregistrer un document Office, l'application obligatoire de gestion des documents affiche un formulaire d'enregistrement. Notre façon de le contourner est de maintenir la touche MAJ enfoncée pendant que nous cliquons sur Enregistrer sous, puis ensuite (toujours avec la touche MAJ enfoncée), sur Annuler (dans le formulaire de l'appli obligatoire), et enfin nous avons la possibilité d'enregistrer notre fichier là où nous le voulons, sur le C ou ailleurs...
Dans le code d'envoi ci-dessous, j'ai une erreur que le débogage pointe à la ligne que j'ai soulignée. Notre application obligatoire s'affiche et si je fais annuler, ça coince, ça bip, ça fait tout sauf ce que ça doit faire... Comment corriger le code pour contourner cette appli et envoyer directement ma feuille dans Outlook sans passer par "Enregistrer sous" quelque part ?
(J'ajoute pour information que lorsque j'ai adapté le code, tout a bien fonctionné pour mes premiers tests et ensuite patatra ! le problème s'est déclaré).
Sub SendEMail()
Dim NouveauClasseur As Workbook
Dim Destinataire As String
Destinataire = Range("I5").Value
Dim Objetmessage As String
Objetmessage = "Ouverture de dossier"
Application.ScreenUpdating = False
ThisWorkbook.Sheets("Form").Copy
Set NouveauClasseur = ActiveWorkbook
NouveauClasseur.SaveAs Objetmessage
Dim ol As Object, myItem As Object
Set ol = CreateObject("outlook.application")
Set myItem = ol.CreateItem(olMailItem)
myItem.To = Destinataire
myItem.Subject = Objetmessage
myItem.Body = "Bonjour,"
'fichier en cours d'utilisation envoyé en attaché:
myItem.Attachments.Add ActiveWorkbook.FullName
'myItem.Send
myItem.Display
'Set ol = Nothing
Application.DisplayAlerts = False
With NouveauClasseur
.ChangeFileAccess xlReadOnly
Kill .FullName
Application.DisplayAlerts = True
.Close False
End With
End Sub
Un gros merci à tous ceux qui m'accorderont un peu de leur temps.