Macro Excel
Résolu
Deejay F
-
Deejay F -
Deejay F -
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
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:
- Macro Excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
2 réponses
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
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
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