XL 2019 VBA : enregistrer en PDF + Envoyer un email avec Excel ++++

sylvain83

XLDnaute Nouveau
Bonjour j’espère que tous le monde va bien et est en pleine forme!

Je suis sylvain j'ai 38ans je suis nouveau ici et je suis en galère !

J’aimerais donner la fonction suivante à mon bouton : IMPRIMER

  • Conversion + enregistrement sur C : de la feuille 1 (facture scolaire) en PDF (comme actuellement) sauf que j’aimerais que PDF soit nommé automatiquement au nom du client selon case(‘B9’)


  • Ensuite je voudrais

  • Envoyer le PDF en PJ via Outlook (2019) ou Gmail d’ailleurs
  • Choisir la boite d’envoi du message car j'en ai plusieurs sur Outlook
  • A : (adresse mail en ‘C12’)feuille1
  • Objet :( transport : ; ‘A16’)feuille1
  • Corps : écrire un texte prédéfini
  • Et envoyer


Ça me semble pas irréalisable mais super complexe je suis novice en macro donc j’ai réussi à me débrouiller pour les choses +/- basics
mais la ça me dépasse mais qqch de bien (pour info ça fait 3 jours que je suis dessus sans résultats probants aucun !!
enfin j'arrive à imprimer en PDF avec le bouton c'est déjà un bon début !

Donc si une âme charitable passe par la et peut m'aider je lui serais éternellement reconnaissant je suis vraiment a la ramasse !

HELP ME I M TURNING CRAZY
 

Pièces jointes

  • devis 3ok.xlsm
    34.1 KB · Affichages: 37

Phil69970

XLDnaute Barbatruc
Bonjour Sylvain, bonjour le forum

Conversion + enregistrement sur C : de la feuille 1 (facture scolaire) en PDF (comme actuellement) sauf que j’aimerais que PDF soit nommé automatiquement au nom du client selon case(‘B9’)

enfin j'arrive à imprimer en PDF avec le bouton c'est déjà un bon début !

Pour ces 2 points je te propose ça.

VB:
Sub Facture_Scolaire_pdf()

Application.ScreenUpdating = False

'Arborescence proposée :
'   Dossier ou se trouve le fichier excel.
'1)   ==> Factures scolaire
'2)     ==> nom du fichier pdf
' Exemple : Emplacement du Fichier excel\Factures scolaire\Dupont.pdf

Dim Chemin As String                                        'Racine du fichier sur le DD du fichier excel en cours
Dim Dossier As String                                       'Nom du dossier
Dim NFichier As String                                      'Nom du fichier

Dim Var1 As String

Var1 = Range("B9")                  'Nom du clients : exemple ==> Dupont

If Var1 = Empty Then Exit Sub       'Test si il y a un client car pas de client pas de facture !!

'Construction du nom du fichier avec son emplacement en fonction d'ou se trouve le fichier excel en cours
'1)     Verification si le dossier "Factures scolaire" existe sinon creation
Dossier = "Factures scolaire"
Chemin = Application.ActiveWorkbook.Path & "\" & Dossier & "\"
If Dir(Chemin, vbDirectory) = "" Then MkDir Chemin

'2)     Création du fichier pdf
NFichier = Chemin & Var1 & ".pdf"

'Création du fichier PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NFichier, Quality _
        :=xlQualityMinimum, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

MsgBox "La facture de " & Var1 & " a été enregitré." & vbCrLf & vbCrLf & "Ici ==> " & Chemin & vbCrLf & vbCrLf & _
"Sous le nom : " & Var1 & ".pdf", 48, "Enregistrement facture en PDF ..."

ApercuImpression 'Visualisation avant impression

Application.ScreenUpdating = True

End Sub

Sub ApercuImpression()

Application.CommandBars.ExecuteMso ("PrintPreviewAndPrint")

End Sub

Pour l'envoi du mail je ne l'ai jamais fait mais tu peux voir ici :

==> https://www.tutoderien.com/envoyer-un-mail-outlook-avec-excel-vba/

Cordialement
 
Dernière édition:

Phil69970

XLDnaute Barbatruc
Bonjour Sylvain, bonjour le forum

un grand merci ! je ne sais pas si / comment on peut clôturer le sujet ou pas donc n’hésitez pas !

Content que cela te convienne que ce soit ma solution ou celle de goube.
Peut être nous mettre le résultat "remanié un peu à ta sauce" pour les suivants.

Et pour le clôturer :

Cordialement
 

Phil69970

XLDnaute Barbatruc
Bonjour et bienvenu @combaud

Le forum sert aussi à voir les questions similaires qui ont déjà été posées et obtenues des réponses et qui peuvent s'adapter à ta problématique.

Si tu ne trouves pas des réponses parmi le forum, n''hésite pas à ouvrir une discussion pour poser tes questions le plus clairement et si possible avec un fichier mais sans donnée sensible (RGPD oblige) avec des exemples de ce que tu souhaites ==> avant/après.

*Pour la fluidité du forum et des futurs lecteurs le principe c'est une question ==> une ou des réponses de un ou des intervenants et en fin de dialogue tu indiques à la communauté quelle réponse qui correspond le mieux à ton problème voir un mixte de plusieurs réponses.

@Phil69970
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
657

Statistiques des forums

Discussions
315 091
Messages
2 116 110
Membres
112 662
dernier inscrit
lou75