IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Envoyer une feuille d'un classeur par email avec le body du message [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut Envoyer une feuille d'un classeur par email avec le body du message
    Bonjour à toutes et à tous,

    Tout d'abord je vous souhaite un joyeux noël et de bonnes fêtes de fin d'années.

    Je tourne en rond depuis des jours pour arriver à envoyer un mail depuis un classeur.
    Après moultes essais j'ai réussi mais il me reste trois points sur lesquels je n'arrive pas à avancer.

    J'ai un bouton sur la feuil1 qui me permet d'envoyer un bon de commande qui est en feuille cachée, voici la macro qui affiche la feuille et permet d'envoyer par un command bouton la feuille6

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Bouton31_Clic()
    Worksheets("commande").Visible = 0
    Worksheets("synoptique").Select
    Call mail
    End Sub
    Et voici la macro mail :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub mail()
     
    On Error Resume Next
     
    ThisWorkbook.Sheets(6).Copy
    With ActiveWorkbook
    .SendMail Recipients:=Array("xxxxx@xxxxxxx.fr")
    Subject:="Veuillez trouver ci-joint xxxxxxx" & " " & Format(Date, "dd/mmm/yy")
    Body:="blablabla"
    .Close SaveChanges:=False
    End With
     
     
    End Sub
    ça fonctionne sans problème sauf que je voudrais ajouter un body ( qui ne s'affiche pas dans Outlook), et le mon du fichier attaché qui est une copie de ma feuille6 a comme nom classeur1.xlsx alors que je voudrais le renommer en commande.xls .

    Mon dernier problème réside dans le fait que dans ma feuille6 il y a un bouton qui permet d'envoyer le mail, lors de la création de la copie de la feuille6 il reste dans cette dernière et je n'arrive pas à le supprimer.

    Un grand merci par avance pour l'aide que vous pourrez m'apporter
    Cordialement scoubi77

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut
    Bonjour à toutes et à tous,

    Mes recherches d'hier soir ainsi que l'utilisation de l'aide du VBA dans Excel ( touche F1 après surlignage de la fonction Sendmail ) il semblerai que le coprs du message ne soit pas compatible avec cette fonction !!!

    " SendMail(Destinataires, Objet, AccuséRéception) "

    il faut que je reprenne à 0 mon code arf à moins que vous ayez une astuce supérieure à mes maigrelettes connaissances !!!

    Au plaisir de vous lire et en attente de vos précieux conseils

    Cordialement
    scoubi77

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut
    Re bonjour,

    J'ai changé mon code par celui-ci,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Sub mail()
    Dim fichier As String
    Dim ol As New Outlook.Application
    Dim olmail As MailItem
    ThisWorkbook.ActiveSheet.Copy
    With ActiveWorkbook
        fichier = .Name & ".xls"
        .SaveAs Filename:=ThisWorkbook.Path & "\" & fichier
        .Close
    End With
    Set ol = New Outlook.Application
    Set olmail = ol.CreateItem(olMailItem)
    With olmail
        .To = "xxxxx@wanadoo.fr"
        .Subject = "sujet"
        .Attachments.Add ThisWorkbook.Path & "\" & fichier
        .Body = "Texte dans le corps de message"
        .Display
        '.Send
    End With
    Kill ThisWorkbook.Path & "\" & fichier
    End Sub
    il ne me reste plus qu'à renommer ma feuille car pour l'instant elle est nommé par défaut en classeur1.xls et supprimer la macro et le boutton dans la feuille copié.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut
    Re bonjour,

    J'ai réussi à corriger mes beug, voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Sub mail()
    Dim fichier As String
    Dim ol As New Outlook.Application
    Dim olmail As MailItem
    ThisWorkbook.ActiveSheet.Copy
    With ActiveWorkbook
        fichier = "commande de fournitures.xls"
    ActiveSheet.Buttons.Delete
    .SaveAs Filename:=ThisWorkbook.Path & "\" & fichier
        .Close
    End With
    Set ol = New Outlook.Application
    Set olmail = ol.CreateItem(olMailItem)
    With olmail
        .To = "xxxxx@xxxx.fr"
        .Subject = "commande "
        .Attachments.Add ThisWorkbook.Path & "\" & fichier
        .Body = "Bonjour," & vbCrLf _
     & vbCrLf _
     & "Vous trouverez ci joint le détail" & vbCrLf _
     & vbCrLf _
     & "Cordialement" & vbCrLf _
     & vbCrLf & vbCrLf _
     & "Fab"
        .Display
        '.Send
    End With
    Kill ThisWorkbook.Path & "\" & fichier
    End Sub
    Il ne me reste plus qu'un détail, le fichier crée a du mal à s'ouvrir, à l'ouverture du fichier crée j'ai ce message:

    "Le format du fichier que vous tentez d'ouvrir,<"commande de fournitures.xls"> est différent de celui spécifié par l'extension du fichier, si je click sur oui il s'ouvre mais d'où vient cette erreur ???

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    regarder l'aide de la méthode Workbook.SaveAs ou encore via l'Enregistreur de macros …

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut
    Merci à toi,

    j'ai trouvé, j'ai rajouté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .SaveAs Filename:=ThisWorkbook.Path & "\" & fichier , FileFormat:=56
    et ça marche.
    Je laisse mon post ça pourrait servir à d'autres.

    Bonne fêtes de fin d'années

    Cordialement

    Scoubi77

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Envoyer une feuille par mail outook
    Par yoyo-tns dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/10/2013, 13h21
  2. aller sur une feuille d'un classeur fermé par formule
    Par ericdev67 dans le forum Excel
    Réponses: 4
    Dernier message: 17/01/2011, 19h40
  3. instructions pour accéder à une feuille d'un classeur par macro
    Par rogerone dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/02/2010, 12h30
  4. [VBA-E]renommer une feuille d'un classeur
    Par jeremiegrenoble dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/03/2006, 09h17
  5. [FPDF] Créer un PDF et l'envoyer par email avec PHPMailer
    Par nico33307 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 12/12/2005, 22h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo