Enregistrement en PDF non exécuté

Y compris Power BI, Power Query et toute autre question en lien avec Excel
V
Virg1511
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 28 mars 2019
Version d'Excel : 2010

Message par Virg1511 » 1 avril 2019, 16:50

Bonjour,

J'ai créer une macro pour qu'à partir d'un bouton, la page active soit imprimer en pdf à un endroit spécifique et qu'après une mail envoi automatiquement ce pdf.
Problème 1: l'enregistrement en pdf ne se fait pas où je veux, mais systématiquement dans "Mes documents"
Problème 2: la macro me créer bien le mail avec le bon destinataire, mais le pdf n'est pas rattaché.

Une idée ::o

Voilà ma macro

Sub Macro1()
Dim Chemin
Dim NFichier As String

Chemin = "C:\Utilisateurs\Images\"
NFichier = "Feuille pr?sence" & Format(Now, " mmm-yyyy") & Range(" B13").Value & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NFichier, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

Set OApp = CreateObject("Outlook.Application") Set OMail = OApp.CreateItem(0)

With OMail

.Display
.To = "xxxxxxxxx"
.Subject = "Calendrier de pr?sence"
.Attachments.Add Chemin & NFichier
.Send
End With

End Sub
Avatar du membre
Xmenpl
Membre impliqué
Membre impliqué
Messages : 2'679
Appréciations reçues : 185
Inscrit le : 16 mai 2018
Version d'Excel : 2003 à 2013

Message par Xmenpl » 1 avril 2019, 17:06

Bonjour,
1) Dim chemin tout cours manque pas : as string ?
2) Chemin = "C:\Utilisateurs\Images\" ? es-tu certains de ce répertoire ?

D'ordinaire c'est "C:\users\le nom de l'utilisateur\Images\


tu peux vérifier avec un clic droit option "propriété" sur ton répertoire images


Pour la deuxième partie du problème je pense que c'est en résolvant la première. :bof:
V
Virg1511
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 28 mars 2019
Version d'Excel : 2010

Message par Virg1511 » 2 avril 2019, 08:22

Merci pour tes réponses, mais ça ne fonctionne toujours pas.

1)J'ai enlevé le "As String" pour faire des tests suite à mon problème
2) Je peux mettre tous les chemins d'accès que je veux, le pdf s'enregistre uniquement dans "Mes documents".
Il manque effectivement "user", c'est moi qui l'ai retiré pour mettre dans le forum
3) la macro n'arrive toujours pas à me rattacher le pdf dans un mail.
Avatar du membre
Xmenpl
Membre impliqué
Membre impliqué
Messages : 2'679
Appréciations reçues : 185
Inscrit le : 16 mai 2018
Version d'Excel : 2003 à 2013

Message par Xmenpl » 2 avril 2019, 15:30

Bonjour,
Sans ton fichier pour faire le test de mon coté je ne vois pas là ::(
V
Virg1511
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 28 mars 2019
Version d'Excel : 2010

Message par Virg1511 » 2 avril 2019, 16:01

Voici mon fichier.
Merci d'avance pour ton aide.
Calendrier 2019 SB.xlsm
(82.21 Kio) Téléchargé 2 fois
Avatar du membre
Xmenpl
Membre impliqué
Membre impliqué
Messages : 2'679
Appréciations reçues : 185
Inscrit le : 16 mai 2018
Version d'Excel : 2003 à 2013

Message par Xmenpl » 2 avril 2019, 16:36

Re,
D'après ce que je vois c'est sur serveur ? tu es sur du
-6. Secretariat ( avec un espace entre ) ?
-2019 (en travaux ( avec une parenthèse seulement ? )

Personnellement je me prendrai pas la tête avec chemin et nom ( Nomfichier j'indiquerai le chemin complet
directement.
Voir macro 1 dans module 1

D'ailleurs si on relit : ExportAsFixedFormat Type:=xlTypePDF, Filename:=NFichier
Dans cette partie tu lui dis d'exporter mais tu ne lui dis pas où avec cette méthode.

Je pense que le problème venait de là.

A tester.
Calendrier 2019 SB (retour).xlsm
(77.18 Kio) Téléchargé 5 fois
V
Virg1511
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 28 mars 2019
Version d'Excel : 2010

Message par Virg1511 » 3 avril 2019, 09:08

Cela ne fonctionne toujours pas.
Lors que je lance la macro, le codage "Format" se met en surbrillance avec un message d'erreur "Erreur de compilation: Projet ou bibliothèque introuvable".

Je te confirme que:
-6. Secretariat ( avec un espace entre ) ? <-- c'est normal
-2019 (en travaux ( avec une parenthèse seulement ? <-- un oubli de ma part

D'ailleurs si on relit : ExportAsFixedFormat Type:=xlTypePDF, Filename:=NFichier
Dans cette partie tu lui dis d'exporter mais tu ne lui dis pas où avec cette méthode.
<-- est-ce que l'a indiqué dans la macro1, je ne vois pas où?

Idéalement, j'aimerai que chaque personne puisse enregistrer le fichier à l'endroit qu'elle veut et que le pdf l'enregistre au même endroit, sans avoir à toucher la macro, que le changement de chemin d'accès se fasse tout seul.
V
Virg1511
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 28 mars 2019
Version d'Excel : 2010

Message par Virg1511 » 3 avril 2019, 16:36

J'ai fait quelques modification grâce à tes explication et ça fonctionne.

Sub Macro1()
Dim Chemin As String
Dim NFichier As String

Chemin = "M:\6.Secr?tariat\RH\2019 (en travaux)\" ' m'enregistre que dans
NFichier = "Feuille pr?sence" & Format(Now, " mmm-yyyy") & Range(" B13").Value & ".pdf" ' nom d'enregistrement du pdf avec le nom et date

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & NFichier, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
' enregistrement'

Set OApp = CreateObject("Outlook.Application") ' envoi par mail outlook
Set OMail = OApp.CreateItem(0)

With OMail

.Display
.To = "xxx"
.Subject = "yyyy"
.Attachments.Add Chemin & NFichier
.BodyFormat = olFormatRichText
.Body = "zzz"
.Send
End With

End Sub

Maintenant ce que j'aimerai arrivé à faire, c'est modifier le chemin d'accès pour que la macro enregistre le pdf à l'endroit où le fichier Excel est déjà enregistrer.
Une idée?
Avatar du membre
Xmenpl
Membre impliqué
Membre impliqué
Messages : 2'679
Appréciations reçues : 185
Inscrit le : 16 mai 2018
Version d'Excel : 2003 à 2013

Message par Xmenpl » 3 avril 2019, 16:56

Re,
Pour que la macro enregistre au même endroit que le fichier excel alors :

remplacer :
Chemin = "M:\6.Secr?tariat\RH\2019 (en travaux)\" ' m'enregistre que dans

par:

Chemin=ThisWorkbook.Path
V
Virg1511
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 28 mars 2019
Version d'Excel : 2010

Message par Virg1511 » 4 avril 2019, 14:28

Merci

Ma macro finalisée :mrgreen:

Sub Macro1()
Dim Chemin As String
Dim NFichier As String

Chemin = ThisWorkbook.Path & "\" ' enregistre dans le dossier o? se trouve Excel
NFichier = "Feuille pr?sence " & ActiveSheet.Name & Format(Now, " yyyy ") & Range(" B13").Value & ".pdf" ' nom d'enregistrement du pdf nom de la feuille + ann?e + salari?

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & NFichier, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
' enregistrement'

Set OApp = CreateObject("Outlook.Application") ' envoi par mail outlook
Set OMail = OApp.CreateItem(0)

With OMail

.Display
.To = "xxxx"
.Subject = "yyyy"
.Attachments.Add Chemin & NFichier
.BodyFormat = olFormatRichText
.Body = "zzzz" & ActiveSheet.Name
.Send
End With

End Sub


J'ai une dernière question pour une macro quasi identique, mais cette fois j'aimerai que le chemin d'enregistrement du PDF soit sur le réseau, mais sur le lecteur privé de chaque employé N: (propre à chaque personne).
Une idée?
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message