Macro Excel

Résolu
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
Configuration: Windows 7
Firefox 3.5.5

2 réponses

  1. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    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
    1. Deejay F
       
      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
  2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

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


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