Envoyer un document en pièce jointe avec macro Excel

Anto35200

XLDnaute Occasionnel
Bonjourà tous,

Je souhaite créer une macro Excel qui permet d'envoyer un document Word en pièce jointe avec la messagerie Outlook. Voici le code :

Code:
'Avec ce code Outlook doit être ouvert
'Déclaration des varaibles
Dim oA As Outlook.Application
Dim oMI As Outlook.MailItem
Dim oAtt As Outlook.Attachments
'Sauvegarde du document
ActiveDocument.SaveAs."C:\Copies virts\TEST.docm"
'Affectation des variables
Set oA = Outlook.Application
Set oMI = oA.CreateItem(olMailItem)
Set oAtt = oMI.Attachments
 
oAtt.Add "C:\Copies virts\TEST.docm"
'Détail du message
oMI.To = ".....@......com"
oMI.Subject = "Test"
oMI.Body = "Body of MailItem"
oMI.Send
'Libaration des objets
Set oAtt = Nothing
Set oMI = Nothing
  
End Sub

le problème c'est que j'ai ce message : "Erreur de compilation, erreur de syntaxe à cette ligne:
"ActiveDocument.SaveAs."C:\Copies virts\TEST.docm".

Merci de votre aide.

Version de Word 2007 et Microsoft Outlook.
 

camarchepas

XLDnaute Barbatruc
Re : Envoyer un document en pièce jointe avec macro Excel

Bonsoir ,

tu essies de sauvegarder un document qui ne vient de nul part , s'il existe déjà , il faut procéder autrement ,

Si tu le construit alors la syntaxe n'est pas la bonne

Cordialement
 

camarchepas

XLDnaute Barbatruc
Re : Envoyer un document en pièce jointe avec macro Excel

Re mister ,

Et bien , si le fichier doc existe , cela ne sert à rien de le sauvegarder .

Voici donc le code , testé avec une adresse e mail valide et un fichier word existant et dans le bon répertoire

Code:
Sub test()
'Avec ce code Outlook doit être ouvert
'Déclaration des variables
Dim oA As Outlook.Application
Dim oMI As Outlook.MailItem
Dim oAtt As Outlook.Attachments

'Affectation des variables
Set oA = Outlook.Application
Set oMI = oA.CreateItem(olMailItem)
Set oAtt = oMI.Attachments
 
oAtt.Add "C:\Copies virts\TEST.docm" ' Le chemin et le fichier doivent être valides
'Détail du message
oMI.To = ".....@......com" 'Ici , il faut une adresse valide
oMI.Subject = "Test"
oMI.Body = "Body of MailItem"
'oMI.Display ' Permet d'avoir un aperçu , si pas en commentaire
oMI.Send
'Libération des objets
Set oAtt = Nothing
Set oMI = Nothing
 
End Sub
 

camarchepas

XLDnaute Barbatruc
Re : Envoyer un document en pièce jointe avec macro Excel

Bonjour,

Il faut référencer la bibliothèque outlook

Aller dans l'éditeur VBA
Menu outils
Références
trouver et cocher Microsoft Outlook 14.0 Object Library ou Microsoft Outlook XX.0 Object Library
valider par ok

Vba_Références.jpg

Ref_outlook.JPG

et voilà
 

Anto35200

XLDnaute Occasionnel
Re : Envoyer un document en pièce jointe avec macro Excel

J'ai trouvé d'où vient le problème, çà dépend de l'extension de mon fichier Word comment il a été sauvegardé.
Mais comment écrire dans le code de la macro qu'il peut prendre plusieurs types de fichier Word :
*.rtf
*.docx
*.docm
*.txt

Merci encore de votre aide.
 

camarchepas

XLDnaute Barbatruc
Re : Envoyer un document en pièce jointe avec macro Excel

Bonne question ,

La réponse est surement que lorsque tu lances la macro tu sais quelle pièce jointe( Word) est à envoyer à tel personne.

donc le nom du le connais , l'on peut ensuite soit le passer en paramètre ou au travers une cellule par exemple.

dans A1 tu mets Exemple.doc

dans le code

au lieu de
oAtt.Add "C:\Copies virts\TEST.docm"

tu mets
oAtt.Add range("A1")

ou plus subtil , si tu appel ta macro au fur et à mesure des destinataires tu fais comme ceci :

Sub test(Document as string )

oAtt.Add document

end sub

Voilà , voilà
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 334
Membres
103 189
dernier inscrit
Bob34000