Macro Excel

Résolu/Fermé
Deejay F - 17 déc. 2009 à 18:10
 Deejay F - 19 déc. 2009 à 15:07
Bonjour, je ne sais pas si je suis sur le bon forum. je suis nouveau.

Voila mon petit probleme j ai fait une macro pour pouvoir envoyer une feuille par mail en piece jointe a partir d un fichier excel avec plusieurs feuilles.

Tout fonctionne bien mais la seul chose que je voudrais en plus c'est que la feuille excel en piece jointe soit du meme nom que la feuille ou que je puisse la renommer dans le code:

Voici mon code :

Sub EnvoiPage()
Dim Destinataires(3) As String, Sujet As String
Dim AccuseReception As Boolean
Destinataires(1) = "@ mail"
Sujet = "sujet du message"
AccuseReception = True
ThisWorkbook.Sheets("toto").Copy
ActiveWorkbook.SendMail Destinataires, Sujet, AccuseReception
ActiveWorkbook.Close False
End Sub

Donc la pour exemple je voudrais que ma piece jointe s appelle "toto.xls"

Voila encore une petite chose je suis sur office 2007

Merci d'avance
A voir également:

2 réponses

Le Pingou Messages postés 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 1 427
17 déc. 2009 à 23:06
Bonjour,
Le plus simple est de copier la feuille vers un nouveau classeur temporaire :
ActiveSheet.Copy ' créée une copie de la feuille active dans un nouveau classeur

Vous le nommez du même nom que la feuille :
Workbooks(ActiveWorkbook.Name).SaveAs toto

Vous prenez ce classeur en pièce jointe et ensuite fermer et le supprimer.
ActiveWorkbook.Close ' Fermer le classeur temporaire créé pour le courriel
Kill toto ' Supprimer le classeur temporaire
1
Merci pour tes explications. j'ai reussi a faire exactement ce que je voulais sauf une chose.
Voici le nouveau code qui fonctionne a merveille :

Sub EnvoiPage()
Dim Destinataires(3) As String, Sujet As String
Dim AccuseReception As Boolean
Destinataires(1) = "@ mail"
Sujet = "sujet"
AccuseReception = True
ThisWorkbook.Sheets("feuille").Copy
ActiveWorkbook.SaveAs Filename:="C:\Users\admin\Desktop\Dossier\toto.xls" & "" & FileFormat
ActiveWorkbook.SendMail Destinataires, Sujet, AccuseReception
ActiveWorkbook.Close False
Kill "C:\Users\admin\Desktop\Dossier\toto.xls"
End Sub

Voila mon probleme c'est que avec ce code il me l envoi bien en xls (format pour tout excel) mais quand je le recoi et que je l ouvre il me marque "le format de fichier que vous tentez d'ouvrir "toto.xls" est different de celui spécifié par l'extention de fichier"
Si j enleve .xls apres toto par defaut il me met .xlsx (format 2007)
J ai bien été dans les options d'excel, enregistrement et enregister les fichiers auformat suivant : j ai bien mis .XLS.
Donc je ne comprend pas pkoi il veut absolument me l enregistrer en xlsx ???

Quelqu un aurai un petite idée ???

Merci d'avance
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 685
18 déc. 2009 à 11:09
bonjour

Essaie comme ceci :
ActiveWorkbook.SaveAs Filename:="C:\Users\admin\Desktop\Dossier\toto.xls" , FileFormat:=xlExcel8


Ce format est le format .xls
1
Merci beaucoup tout marche impeccable...
0