Met le CopyAs avant de l'envoyer.
Pour ce qui est du Kill, n'oublie pas de spécifier le chemin et le nom du fichier
Version imprimable
Met le CopyAs avant de l'envoyer.
Pour ce qui est du Kill, n'oublie pas de spécifier le chemin et le nom du fichier
Ce serait pas mal plus simple si tu mettais le bout de code que tu utilises pour envoyer le fichier en n'oubliant pas d'utiliser le bouton # pour le formater dans le message.
Voilà le code! Mais j ai un autre problème! Qd j envoie mon fichier sur une adresse sharepoint il me le met en extension eml sur sharepoint mais si je fais la procédure sans la macro donc en appuyer sur pièce jointe et en choisissant mon fichier la tt va bien !???
Bizarre non??
Voilà mon code
Sub envoiClasseur()
If ThisWorkbook.ReadOnly Then Exit Sub
Dim Fichier As Variant
MsgBox Fichier
Dim MaMessagerie As Object
Dim MonMessage As Object
Set MaMessagerie = CreateObject("outlook.application")
Set MonMessage = MaMessagerie.Createitem(0)
MonMessage.to = "XXXXX@hotmail.com"
MonMessage.Attachments.Add "c:\users\jf\desktop\XXXXX.xlsm"
MonMessage.Send
Set MaMessagerie = Nothing
MsgBox "Votre mail à bien été envoyé"
End Sub
Tu n'as pas utilisé le bouton # pour formater ton code...
Où enregistres-tu une copie de ton fichier ?
Si tu ne l'as pas fait, c'est peut-être normal que la macro ne le trouve pas...
Autrement, il faut que tu sauvegardes après
Code:If ThisWorkbook.ReadOnly Then Exit Sub
As-tu essayé l'enregistreur de macro pour voir le genre de code que ça te donne ?
Il suffira de le modifier quelque peu par la suite...
Effectivement... désolé...
Essaie comme ceci pour envoyer ton fichier
Code:
1
2ThisWorkbook.Save 'pour être certain qu'il soit à jour MonMessage.Attachments.Add ThisWorkbook.FullName
As-tu essayé ou même regardé l'aide sur ce mot?
FullName retourne le chemin et le nom du classeur, ici Thisworkbook, soit ton fichier avec la macro...
En principe, ceci devrait fonctionner
Si ça ne fonctionne pas, donne le message d'erreur exact.
Peut-être que le fait d'être partagé le fichier ne peut s'envoyer tel quel. À ce moment-là, faire une copie et envoyer cette copie passerait peut-être mieux...(?)
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Sub envoiClasseur() Dim MaMessagerie As Object Dim MonMessage As Object If ThisWorkbook.ReadOnly Then Exit Sub Set MaMessagerie = CreateObject("outlook.application") Set MonMessage = MaMessagerie.Createitem(0) MonMessage.to = "XXXXX@hotmail.com" MonMessage.Attachments.Add ThisWorkbook.FullName MonMessage.Send Set MonMessage = Nothing Set MaMessagerie = Nothing MsgBox "Votre mail à bien été envoyé" End Sub
J'ai vu que tu avais posé la question dans un autre message...
Il y a une différence entre Outlook et Outlook Express.
Ce que tu utilises CreateObject(Outlook.application) s'applique à Outlook, mais pas à l'autre.
Fais une recherche sur CDO
Voir ICI (en anglais)
Excel doit utiliser le programme de messagerie par défaut.
Toi tu utilises la méthode Outlook.
Avec CDO, tu devrais régler ton problème.