Envoyer feuille excel via mail en pdf

Anonyme
2019-06-19T07:39:22+00:00

Bonjour, 

je galère un peu sur l'envoi automatique d'une feuille excel via pdf en mail. 

Je m'explique: 

  • je possède un fichier avec plusieurs feuilles
  • je sélectionne une d'entre elles indifféremment
  • je clique sur un bouton transmettre/envoyer
  • l'application messagerie outlook s'ouvre 
  • la pièce jointe est déjà présente
  • je mets le mail de mon destinataire manuellement

Ce qui est valable pour moi est valable pour celui qui disposera du fichier

Même process donc pour X, Y ou Z

Merci par avance

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

40 réponses

  1. Anonyme
    2019-06-20T09:26:44+00:00

    Daniel,

    c'est bon c'est parfaitement opérationnel.

    J'ai remonté le .Display et j'ai fermé le .HTMLBody = …. & .HTMLBody

    Si ça peut servir aux autres, voici la macro avec une grosse intervention de Daniel !!!!

    Merci pour toute ta précieuse aide Daniel :)

    Sub EnvoiPDF()

      Dim Nom As String, MaSignature As String

      Nom = ActiveSheet.Name & ".pdf"

      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

        ActiveWorkbook.Path & "" & Nom, Quality:=xlQualityStandard, _

        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _

        False

      Set olApp = CreateObject("Outlook.application")

      Set m = olApp.CreateItem(0)

      With m

        .Display

        .Subject = "Test"

        .HTMLBody = "Bonjour," & "<br><br><br>" & "En pj le document." & "<br>" & "La pj contient les infos." & "<br><br>" & "Bonne journée." & "<br><br>" & "Cordialement." & "<br><br>" & .HTMLBody

        .attachments.Add ActiveWorkbook.Path & "" & Nom

      End With

    End Sub

    Cette réponse a-t-elle été utile ?

    2 personnes ont trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  2. DanielCo 107.7K Points de réputation
    2019-06-26T09:53:54+00:00

    J'ai modifié le classeur pour supprimer le PDF. tu peux faire un double clic sur n'importe quelle feuille pour afficher le userform de choix. J'ai aussi mis un bouton sur Feuil1. il affiche aussi ce userform.

    https://mon-partage.fr/f/arH5FN4T/

    Daniel

    Cette réponse a-t-elle été utile ?

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  3. Anonyme
    2019-06-24T09:59:00+00:00

    Bonjour Daniel, 

    j'ai réfléchi à nos échanges et voilà ce qui en ressort : 

    • le fichier de base transit d'une personne à une autre
    • la personne modifie son fichier excel et envoie la feuille désirée en xlsm (tu as raison, ne pas perdre de données est essentiel)
    • toujours avec le processus kill au final afin d'éviter ce double stockage
    • la personne qui complète la feuille reçue doit pouvoir retourner la feuille remplie en pdf 
    • toujours avec le processus kill au final afin d'éviter ce double stockage

    Donc: afin d'éviter des pertes macros le format xlsm va bien pour le démarrage maintenant penses-tu qu'il soit possible de choisir entre un export xlsm ou pdf via le même bouton ?

    Selon toi, vaut-il mieux créer 2 boutons Distincts sur chaque feuille : export xlsm ou pdf ou un bouton avec 2 fonctions et donc 1 macro pour chaque ?

    Genre : Btn 1 = Export Excel Btn2 = Export pdf

    Merci de tes retours

    Cette réponse a-t-elle été utile ?

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  4. DanielCo 107.7K Points de réputation
    2019-06-19T16:33:58+00:00

    Est-ce compliqué d'arriver à un tel résultat ?

    Comment te dire ? J'écris des macros depuis très longtemps.Je suis loin de connaître tout. L'enregistreur de macros (onglet Développeur, Enregistrer une macro) permet de générer du code en effectuant les manipulations manuellement. Je m'en suis servi pour générer le code servant à enregistrer au format PDF. Pour la partie "envoi avec Outlook, je conserve des exemples de macros. Sinon je recherche sur internet. L'essentiel, pour progresser, c'est dans écrire beaucoup.

    Comment sécuriser cette macro afin qu'elle ne soit pas touchée dans la suite ?

    Il faut mettre un mot de passe sur le projet VBA dans lequel se trouvera la macro. Le plus simple, si la macro doit être utilisée sur plusieurs ordis est sans doute de faire une macro complémentaire. Je n'ai pas le temps ce soir. Je répondrai de main.

    Ca ne fonctionne évidemment pas avec le Excel Online qui ne prend pas en compte les macros.

    Non.

    Daniel

    Cette réponse a-t-elle été utile ?

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  5. Anonyme
    2019-06-19T13:58:25+00:00

    Ecoute, 

    ce fichier ne me sera pas destiné, il peut se balader sur du OneDrive, sur le C: ou sur le serveur

    Mais ce que je comprends pas c'est que tout fonctionnait parfaitement toute à l'heure 

    Et idem j'essaye avec un nouveau fichier modèle même erreur ... et je n'ai pas toucher les paramètres il me semble ...

    Cette réponse a-t-elle été utile ?

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire