Contourner une application "obligatoire" dans un code VBA d'envoi d'une feuille xls.

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.
 
C

Compte Supprimé 979

Guest
Re : Contourner une application "obligatoire" dans un code VBA d'envoi d'une feuille

Re,

Pourtant ça devrait fonctionner, c'est ce que j'utilise au boulot !?
Je viens de tester sur XP, ça fonctionne chez moi :eek:

Je pencherais plutôt pour un problème avec Outlook, peut-être la version !?

Voici un lien vers d'autres exemples
Sample Outlook Automation - JP Software Technologies

A+
 
Dernière modification par un modérateur:

SOYA

XLDnaute Occasionnel
Re : Contourner une application "obligatoire" dans un code VBA d'envoi d'une feuille

Bonjour Super Bruno !

Je crois que le problème vient du fait que certains utilisateurs ont Excel 2003... Est-ce que ça peut se régler facilement ? Si non, on laisse comme c'est (ils n'auront qu'à se procurer la version 2007 les retardataires !).

Encore une fois merci !

Modification : c'est le Microsoft Outlook Object Library qui est manquant sur son ordi... C'est probablement la cause... Je farfouille...
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Contourner une application "obligatoire" dans un code VBA d'envoi d'une feuille

Salut Soya,

Avec le code que je t'ai donné tu n'as pas à avoir cette référence cochée ;)
C'est ça le Late Binding, ça évite le problème de compatibilité

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 214
Messages
2 086 309
Membres
103 174
dernier inscrit
OBUTT