Envoie de mail via word

jarod1990

XLDnaute Nouveau
Bonjour,
Je souhaite avoir un bouton sur un doc word qui permet l'envoie du fichier word en pièce jointe fraichement nommé pour l'occasion par la valeur d'un signet. Pour cela je passe par une étape de sauvegarde dans le dossier temporaire de Windows. C'est là le problème, Je ne parviens pas à enregistrer dans ce dossier ! Il enregistre dans mes docs..
Merci de votre aide.
Cordialement.

Voici le code


Sub CommandButton1_Click()
Dim oApp As Outlook.Application
Dim MyIt As MailItem
Dim myAtt As Attachment

Call Savedautotemp

Set oApp = CreateObject("outlook.application")
Set MyIt = oApp.CreateItem(olMailItem)
Set myAtt = MyIt.Attachments.Add(ActiveDocument.FullName)


'Recherche du signet
Dim MaVariable As String, MonSignet As String
MonSignet = "adress"
If ActiveDocument.Bookmarks.Exists(MonSignet) Then
MaVariable = ActiveDocument.Bookmarks(MonSignet).Range.Text
End If

'Envoie du mail
MyIt.To = MaVariable
MyIt.Subject = MaVariable
MyIt.BodyFormat = olFormatHTML
MyIt.Body = "mon corps de message"
MyIt.Display
End Sub

Sub Savedautotemp()
Dim Resultat As Long
Dim temp As String
Dim Filename
temp = String$(255, 32)
Resultat = DossierTemp(255, temp)
MsgBox temp



'on crait le nom du fichier temp
Dim MaVariable As String, MonSignet As String
MonSignet = "adress"
If ActiveDocument.Bookmarks.Exists(MonSignet) Then
MaVariable = ActiveDocument.Bookmarks(MonSignet).Range.Text
End If
Filename = MaVariable
MsgBox temp
ChDir temp
ActiveDocument.SaveAs Filename:=Filename & ".doc" 'on enregistre le fichier

End Sub

 

ledzepfred

XLDnaute Impliqué
Re : Envoie de mail via word

bonjour jarod,

ton code ne fonctionne pas car la fonction DossierTemp est absente

ajoutes ceci après la procédure savedautotemp :
Code:
Function DossierTemp(ByVal longueur As Long, ByVal temp As String) As String
Dim chemin As Object
Dim Dossier As String
Set chemin = CreateObject("Scripting.FileSystemObject")
Dossier = chemin.GetSpecialFolder(TemporaryFolder).ShortPath
DossierTemp = Dossier & "\Temp\"
End Function

Autre chose, dans la procédure savedautotemp tu déclares une variable nommée Filename, mieux vaut éviter de donner à une variable un nom réservé à une propriété, objet ou argument, je te conseille donc de remplacer Filename par Fichier par exemple et de déclarer cette variable de type String

Code:
Sub Savedautotemp()
Dim Resultat As Long
Dim temp As String
Dim Fichier As String

a+
 

Discussions similaires

Réponses
7
Affichages
538
Réponses
2
Affichages
586

Statistiques des forums

Discussions
314 626
Messages
2 111 297
Membres
111 093
dernier inscrit
Yvounet