Créer un pdf, Enregistrer et Enyoyer par Mail

Bonjour,
Je suis en train de développer un fichier pour faire le contrôle d’un produit. Je suis bloqué, j’ai besoin de votre aide. Dans le fichier ci-joint à deux feuilles, la feuille paramètres et la feuille contrôle AVE130. Je veux envoyer par mail et enregistrer en PDF uniquement la feuille contrôle AVE130.
-Avec le code que je viens de faire j’arrive à créer le dossier de stockage des pdf mais pour créer le pdf le programme me renvoie le message que le pdf a été créé, mais il n’a pas le pdf dans le dossier d’enregistrement.

Bien cordialement,

Bonjour Thel ,

alors tu peux essayer ce code si tu veux, chez moi cela fonctionne très bien.
Saches que chez moi la feuille a envoyer se nomme « COMMANDE » et elle sera archivée en PDF dans le dossier « Archives COMMANDES MAIL »

Sub EnvoiPDF()
'je déclare mes variables

Dim Chemin As String
Dim olApp As Object
Dim M As Object
Dim Destinataire As String
Dim Nom As String
Dim Objet As String
Chemin = « P:\DISQUEDUR1\Archives COMMANDES MAIL »
Nom = ActiveSheet.Name & « .pdf »
Sheets(« COMMANDE »).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Chemin & « Commande_Par_Mail_N°_ » & Range(« B1 »).Value & " " & Range(« B3 »).Value & « .pdf », Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Set olApp = CreateObject(« Outlook.application »)
Set M = olApp.CreateItem(0)
Destinataire = Range(« B4 »)
Objet = "Bon de commande numéro: " & Range(« B1 »)
With M
.To = Destinataire
.Subject = Objet
.Attachments.Add Chemin & « Commande_Par_Mail_N°_ » & Range(« B1 »).Value & " " & Range(« B3 »).Value & « .pdf »
.Display

End With

End Sub

J’espère que cela puisse t’aider;

Merci pour une réponse retour;

Cordialement, Rubis

Bonjour

2 lignes de code déffectueuses

Celle-ci :

–dossier = ThisWorkbook.Path & « / » & Nomdossier & « / »–

attention pour définir un chemin il faut utiliser le caractère antislash entre les différents dossiers et non le caractère slash

Donc il faut mettre cette ligne de code ainsi :

–dossier = ThisWorkbook.Path & « antislash » & Nomdossier & « antislash »–

Puis cette partie de ligne de code :

Filename:=dossier & " Stator AVE130 N°" & « " & Sheets(« Contrôle_AVE130 »).Range(« E8 »).Value & " » & Sheets(« Contrôle_AVE130 »).Range(« F5 »).Value & « .pdf »

Dans cette instruction pour le nom d’attribution du fichier tu fais appel à la donnée Range(« F5 »).Value de l’onglet « Contrôle_AVE130 »

Or cette donnée est une date sous ce format : --« 13/02/2022 »–

Il est impossible d’utiliser le caractère slash dans un intitulé de fichier

J’ai donc modifié la partie concernée :

Sheets(« Contrôle_AVE130 »).Range(« F5 »).Value

Par

Replace(Sheets(« Contrôle_AVE130 »).Range(« F5 »).Value, « / », « - ») & « .pdf »

pour remplacer le caractère slash par un tiret

Ces 2 corrections réalisées le résultat est au RDV

Testes et dis moi

Fiche_ZF.xlsm (153,5 Ko)

1 « J'aime »

Merci pour ton aide, quand je fais un copie coller de ton code, il y’a d’autres lignes qui sont en couleur rouge. Pouviez vous l’envoyer dans un fichier qui marche? ça sera plus facile de faire les modifications.

Cordialement,

Bonjour Thel et FFO

Le code envoyé fonctionne très bien dans mon classeur excel depuis des mois, donc Merci FFO pour ta correction que je vais changer dans mon code.

oui il faut modifier et adapter ce code à ton fichier Thel c’est sur;

Merci pour ton retour

Ravi que ma contribution pour toi soit toujours bien opérationnelle

Au plaisir de te retrouver

Merci,
Votre intervention était tellement précieuse pour moi. Grâce à votre aide, le problème concernant mon programme est bien résolu. Je vous remercie de d’avoir disposer votre temps afin de m’aider. Merci une fois de plus.

Cordialement,

Merci pour ta réponse
Un grand plaisir pour moi d avoir contribué à la résolution de ta difficulté
Au plaisir de renouveler ma collaboration une prochaine fois
A bientôt peut être

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.