Sauvegarder PDF par macro

Résolu/Fermé
RobiQc - 26 févr. 2022 à 20:04
RobiQc Messages postés 21 Date d'inscription dimanche 20 décembre 2020 Statut Membre Dernière intervention 3 mai 2022 - 12 mars 2022 à 21:26
Bonjour
J'importe des données dans un modèle EXCEL, lequel je sauvegarde sous un nom de classeur, disons GESTION. Ce classeur possède 3 onglets: TRAVAIL, RAPPORT PAGE 1, et RAPPORT PAGE 2. Seulement les 2 pages de RAPPORT doivent être sauvegardées en PDF

J'ai créé une macro pour créer un fichier PDF qui va sauvegarder ce PDF sur le bureau, sous le nom de fichier GESTION que je viens de nommer.

Cela fonctionne. Mais lorsque je veux réouvrir mon modèle pour importer d'autres données et créer un autre nom de fichier, cela ne fonctionne pas, en ce sens qu'il fait le travail, mais conserve l'ancien nom de classeur (STATISTIQUES FORMATIONS) dans le cas présent).
Je voudrais qu'il prenne toujours le nom du classeur que je sauvegarde à chaque opération au lieu de prendre STATISTIQUES FORMATIONS par défaut.

À la rigueur, il pourrait prendre le référence de cellule G2 de l'onglet TRAVAIL

Voici mes données:

Sheets(Array("RAPPORT PAGE 1", "RAPPORT PAGE 2")).Select
Sheets("RAPPORT PAGE 1").Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\Ordi8\Desktop\STATISTIQUES FORMATIONS.pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Sheets("RAPPORT PAGE 2").Select
ChDir "C:\Users\Ordi8\Desktop"

Merci beaucoup de votre aide
A voir également:

43 réponses

RobiQc Messages postés 21 Date d'inscription dimanche 20 décembre 2020 Statut Membre Dernière intervention 3 mai 2022
4 mars 2022 à 17:21
Bonjour et merci, le Pingou. C'est du beau travail.

Puis-je me permettre certaines petites remarques:

1. J'aimerais que l'instruction CRÉER PDF contienne au début le code nécessaire pour sauvegarder le fichier sous le format Xlsm, avec les instructions formatées en F2 et G2 de TRAVAIL. Cela éviterait de demander à l'utilisateur de devoir sauvegarder le fichier, avec les possibilités d'erreur. Les connaissances des utilisateurs potentiels de ce fichier sont très limitées...

2. Je me suis permis de petits changements dans le fichier, que j'ai notés en couleur pour votre approbation ou commentaire de votre part.

3. La date devrait avoir le format yyyymmdd

4. Le 2e mot classeur prend 2 s .

Enfin, voici le lien du fichier Cjoint qui contient le code de la macro CRÉER PDF ()

https://cjoint.com/c/LCeqkJ2Edco

Merci encore de votre attention. C'est un bon travail

RobiQc
0
Le Pingou Messages postés 12141 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 septembre 2024 1 446
6 mars 2022 à 16:52
Bonjour,
Vous avez des directives pour utiliser le fichier modèle qui précise la SAUVEGARDE DU FICHIER MODÈLE SOUS UN AUTRE NOM.
Ce qui est parfait et qui est le b à ba pour un utilisateur.
Selon votre demande vous voulez automatiser cette opération lorsque toutes les données seront renseignées, donc les directives pour la sauvegarde sont inutiles.
Dans ce cas il est nécessaire que vous fixé l’endroit exacte (répertoire [ C:\........\........\ ] ou doit être enregistré le classeur avec le nom selon F2 et G2 de TRAVAIL.
Si le répertoire n’existe pas vous devez le créer et non pas laisser le choix à l’utilisateur.
Merci de votre réponse.

0
RobiQc Messages postés 21 Date d'inscription dimanche 20 décembre 2020 Statut Membre Dernière intervention 3 mai 2022
7 mars 2022 à 16:06
Bonjour Le Pingou
J'espère que vous avez passé un bon week-end dans ce monde bouleversé de toutes manières !!! Enfin, nous sommes là et c'est ce qui importe.
Je me permets de revenir avec quelques petites précisions.
Selon les informations contenues dans votre courrier ci-haut, j'ai remanié mes informations dans la feuille DIRECTIVES (chronologie du déroulement des actions)
Tout va bien jusqu'au moment ou je clique sur CRÉER LE FICHIER PDF : le système me demande alors de sauvegarder le fichier, ce que je tente de faire manuellement. J'ai alors un message sauvegarder le fichier avant de continuer. Je clique sur OK. Là, je n'ai pas le temps de créer le message; j'ai un pop-up me disant: Erreur d'exécution 1004: document non enregistré; le document est peut-être ouvert ou une erreur s'est produite lors de l'enregistrement".
Je clique sur Débogage, et j'ai alors l'écran apparaissant dans le fichier Word inclus dans le présent courriel. Le nom du classeur est toujours "ModeleStatsFormation1". Je sauvegarde donc le fichier. Je reclique sur CRÉER LE FICHIER PDF, et le travail se fait parfaitement cette fois, avec la mention montrant le nom du fichier et le répertoire dans lequel le classeur est sauvegardé.
J'ai inscrit dans l'onglet DIRECTIVES, dans mon classeur, que je désirerais que le fichier se sauvegarde automatiquement selon les indications des cellules F2 et G2 de TRAVAIL, avec la date de la formation sous le format yyyymmdd suivi d'un espace et du titre de la formation abrégé, genre premier mot jusqu'à l'espace suivant. Si vous avez le goût... Sinon, le texte des DIRECTIVES est clair et suffisant pour l'opérateur.
Je vous remercie beaucoup encore une fois pour votre aide précieuse. Je scrute vos informations à la loupe, dans le but de parfaire mes connaissances en VBA / Macro. J'en suis au stade très débutant. J'ai bien regardé des vidéos sur YouTube mais ce n'est pas toujours évident à suivre.
Passez une belle journée.

RobiQc

Fichier WORD: copie de Macro PDF: https://cjoint.com/c/LChoWGcS4mo
Fichier complet: https://cjoint.com/c/LChoZW7kKlo
0
Le Pingou Messages postés 12141 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 septembre 2024 1 446
7 mars 2022 à 16:54
Bonjour,
J'ai lu jusqu'à DEBOGAGE et je vous fais ma remarque : c'est tout à fait normal car vous avez modifié mon code en supprimant l’instruction [Exit sub] qui est nécessaire pour sortir du programme et permettre de sauvegarder le classeur comme le demande la directive.

Merci de me communiquer la différence entre les 2 fichiers mis à disposition, car je n’en trouve pas !!!!

Dans le cas ou vous voulez imposer la sauvegarde du fichier selon vos critère ["C:\Users\Ordi8\Documents\StatsFormation»] il est nécessaire que le chemin du répertoire existe sur chaque ordinateur et si manquant il faut le créer…
J’attend votre réponse avent de poursuivre l’élaboration du code.

0
RobiQc Messages postés 21 Date d'inscription dimanche 20 décembre 2020 Statut Membre Dernière intervention 3 mai 2022
7 mars 2022 à 19:10
Bonjour Le Pingou
1- Je m'excuse, c'est mon erreur d'avoir désactivé Exit Sub. C'est mon manque d'expérience en programmation. J'étais sous l'impression que cette information devait se trouver à la toute fin de la macro et non dans le corps d'une macro.
2 Je suppose que vous parler des 2 fichiers que j'ai envoyés par CJoint; j'étais sous l'impression qu'il y avait un fichier Word avec le contenu de la macro Créer PDF, et aussi le fichier qui contient mon classeur actuel en entier.
3- Vous avez raison pour le répertoire: j'ai créé le répertoire sur mon poste personnel, mais au bureau je vais créer le répertoire sur le système central.
Merci encore
RobiQc
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12141 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 septembre 2024 1 446
7 mars 2022 à 17:12
Bonjour,
Vous m'expliquez à quoi servent les instructions que vous avez ajouté à la fin de la macro

' Place le curseur en AI de la feuille TRAVAIL pour enlever la dernière sélection (TITRE DE LA FORMATION)
Sheets("TRAVAIL").Activate
Range("A1").Select

' Remet le curseur sur RAPPORT PAGE 2

Sheets("RAPPORT PAGE 2").Activate
Range("A1").Select
0
Le Pingou Messages postés 12141 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 septembre 2024 1 446
Modifié le 7 mars 2022 à 22:21
Bonjour,
Merci, donc sous point 2 de votre réponse c'est bien 2 fois le même fichier...Oui / Non ¨¨¨¨¨
Pour le répertoire : il est impératif que la racine : "C:\Users\Ordi8" existe (pas possible de le créer par vba , doit être fait sur le/les ordinateur/s utilisé/s.

Merci de votre réponse selon poste 25....!

0
RobiQc Messages postés 21 Date d'inscription dimanche 20 décembre 2020 Statut Membre Dernière intervention 3 mai 2022
8 mars 2022 à 16:53
Bonjour Le Pingou.

Désolé pour les fichiers: vous avez raison, les 2 références ouvrent le même fichier. Oublions ces 2 fichiers. J'ai refait "mes devoirs" ce matin et voici le résultat: nous semblons très près du résultat final

Il faut se rappeler que l'objectif ultime de cette démarche est que l'utilisateur n'aie pas à intervenir dans quoi que ce soit, excepté de copier les données du fichier Excel créé par Microsoft Forms, d'ouvrir le fichier TRAVAIL, et d'y copier les données. Le reste devrait idéalement se faire tout seul. Grands espoirs !!! et merci à vous !

Pour tenter d'en terminer avec cette saga, je vous ajoute un fichier Cjoint: j'ai créé 2 scénarios:

1- le premier est ce qui arrive si je ne sauvegarde pas le classeur au début de l'opération,

2- et en 2e, si je sauvegarde le classeur immédiatement après avoir généré les données.

J'ai ajouté les PrtScr des 2 scénarios dans le répertoire. Dans les 2 cas, j'ai volontaire nommé les classeurs différemment lorsque je devais les nommer moi-même: on voit donc bien que le système fait son travail en nommant correctement les fichiers .Xlsm et .PDF

Voici la référence du fichier Cjoint:

https://cjoint.com/c/LCipS6tuz4o

Encore une fois, mille mercis

RobiQc
0
Le Pingou Messages postés 12141 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 septembre 2024 1 446
Modifié le 8 mars 2022 à 17:48
Bonjour,
Merci, avant de poursuivre je désire votre réponse selon poste 25 !

Je vous redis que la racine du répertoire : "C:\Users\Ordi8 doit être présente sur tous les ordinateurs qui seront utilisés .
Remarque: sur votre document à aucune place vous mentionnez le nom du répertoire complet ,....!

0
Le Pingou Messages postés 12141 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 septembre 2024 1 446
Modifié le 10 mars 2022 à 16:14
Bonjour,
Ma proposition, je ne suis pas certain que le répertoire de base "C:\Users\Ordi8" existe sur chacun des ordinateurs utilisés ; je réalise un contrôle à l’ouverture du classeur modèle et enregistre un classeur provisoire nommé (Date du jour yyyymmdd + Provisoire) sera supprimé dès la création du PDF et suite.
Note : sera enregistré sur le répertoire normal, sinon sur répertoire par défaut créer par le code ("C:\Ordi8\Documents\StatsFormation").
Ma proposition : https://www.cjoint.com/c/LCkpk4OV74n

Petite note; faire l'essai en utilisant mon classeur modèle...!


0
RobiQc Messages postés 21 Date d'inscription dimanche 20 décembre 2020 Statut Membre Dernière intervention 3 mai 2022
10 mars 2022 à 19:48
Bonjour Le Pingou. Merci !!!

Question répertoire: seulement 1 ou 2 ordinateurs maximum utiliseront ce fichier; donc, je vais configurer moi-même le répertoire C:\Users\Ordi8\Documents\StatsFormation pour m'assurer qu'il existe sur chacun des ordinateurs concernés.

Le répertoire nécessaire existe sur mon ordinateur. J'ai téléchargé votre fichier, accepté les messages de sécurité et l'ai utilisé immédiatement sans modifier quoi que ce soit dans ce fichier. Après avoir copié et généré les données, tout fonctionne normalement, mais lorsque je clique sur Créer le fichier PDF, j'ai un message d'erreur de la macro:

Erreur d'exécution 99999999 ; document non enregistré.

Sur débogage, j'obtiens le listing de la macro tel que dans le lien ci-bas.

Par contre, le fichier StatsFormation contient bien un fichier yyyymmddProvisoire, bien enregistré comme classeur Excel prenant en charge les macros. Par contre, le PDF n'est pas créé.

Voir le listing de la macro dans le lien qui suit:

https://cjoint.com/c/LCksRxxSWOo

Merci encore et encore pour votre travail et désolé de ne pouvoir sortir le champagne immédiatement !!!

RobiQc
0
Le Pingou Messages postés 12141 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 septembre 2024 1 446
Modifié le 10 mars 2022 à 22:25
Bonjour,
Etrange car il semble qu'il y a blocage au niveau du PDF....!
Merci de me donner le répertoire complet ou enregistré le fichier [20220310 Provisoire] ...!
En plus les 2 valeurs des cellules F2 et G2 de la feuille TRAVAIL !

Tout est correct chez moi


0
RobiQc Messages postés 21 Date d'inscription dimanche 20 décembre 2020 Statut Membre Dernière intervention 3 mai 2022
10 mars 2022 à 22:33
Bonjour

Le répertoire ou sauvegarder les fichiers est C:\Users\Ordi8\Documents\StatsFormation + NomFichier

Je vous inclus via CJoint le fichier références des données que je copie dans mon fichier.

Je copie les lignes de données en regard de la formation désirée; j'exporte ces données dans la feuille TRAVAIL de mon fichier, dans la cellule A2; c'est ainsi que se complètent les colonnes F2 (date) et G2 (titre de formation), lesquelles cellules sont employées pour générer le nom du fichier à sauvegarder, autant Excel que PDF.

Donc, évidemment, ces valeurs changent à chaque nouvelle tâche de comptabilité.

Si vous avez besoin d'autres informations, je suis aussi près que mes touches ! Merci encore.

RobiQc, dans le belle neige de Québec, CANADA

ps: je regarde l'heure d'envoi de votre message: prenez le temps d'aller dormir, c'est pas si urgent que ça !!! :)
0
RobiQc Messages postés 21 Date d'inscription dimanche 20 décembre 2020 Statut Membre Dernière intervention 3 mai 2022
10 mars 2022 à 22:35
Oups, le lien. Désolé

https://cjoint.com/c/LCkvIqU1g2o
0
Le Pingou Messages postés 12141 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 septembre 2024 1 446
Modifié le 10 mars 2022 à 22:58
Bonjour,
Merci pour le retour, le fichier joint n'est pas utile.
Je veux la réponse pour ceci : En plus les 2 valeurs des cellules F2 et G2 de la feuille TRAVAIL !

0
RobiQc Messages postés 21 Date d'inscription dimanche 20 décembre 2020 Statut Membre Dernière intervention 3 mai 2022
11 mars 2022 à 15:54
Bonjour Le Pingou
Je ne comprends pas ce que tu désires exactement: dans mon message no 33 ci-haut, je t'expliquais que ces données varient à chaque nouvelle comptabilité, soit que la date F2 et le titre de la formation G2 de la feuille TRAVAIL sont générés par l'intrant du fichier que je t'ai envoyé hier. Je prends la valeur de la ligne 2 de TRAVAIL car lorsque généré, ce fichier contient la même date et le même titre dans toutes les lignes.
Quand je génère une autre formation, ces données changent sur la feuille TRAVAIL.
Donc, je ne saisis pas ce que tu veux dire...
Désolé de ne pouvoir t'en dire plus.
RobiQc
0
Le Pingou Messages postés 12141 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 septembre 2024 1 446
Modifié le 11 mars 2022 à 16:41
Bonjour,
Vous avez indiquez une erreur lors de l'enregistrement du PDF alors je veux savoir quelles sont les 2 valeurs qui se trouvaient dans F2 et G2 , lors de l'erreur..
Ma demande du poste 26 est pourtant clair et en plus avec image...!


0
Le Pingou Messages postés 12141 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 septembre 2024 1 446
11 mars 2022 à 18:46
Bonjour,
Je vous demande de faire un essai avec ce fichier: https://www.cjoint.com/c/LClrT5kGDpn
Merci.
0
RobiQc Messages postés 21 Date d'inscription dimanche 20 décembre 2020 Statut Membre Dernière intervention 3 mai 2022
11 mars 2022 à 18:49
Bonjour

Voici le contenu de F2 et G2 de TRAVAIL:

Cellule F2: 2-17-2022
Cellule G2: Gestion de conflits : un art plutôt qu’une science…

Bonne journée et merci
RobiQc
0
RobiQc Messages postés 21 Date d'inscription dimanche 20 décembre 2020 Statut Membre Dernière intervention 3 mai 2022
11 mars 2022 à 19:27
Bonjour
Essai fait avec votre fichier Cjoint: même problème:
Message: "Document non enregistré"
Accès à la macro: en jaune: Débute à "ActiveSheet.export..." et finit à "True"
En refermant la macro, message = "Cette commande va arrêter le débogueur"

1- Le fichier PDF n'est pas sauvegardé
2- Le nom du classeur dans la barre des titres en haut est toujours celui que vous m'avez envoyé
3- Le fichier xlsm a bien été sauvegardé dans le bon répertoire, sous le nom "20220311Provisoire"
4- Les données de F2 et G2 de TRAVAIL sont "2-17-2022" et "Gestion de conflits : un art plutôt qu’une science…"

Merci
RobiQc
0
Le Pingou Messages postés 12141 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 septembre 2024 1 446
Modifié le 11 mars 2022 à 23:58
Bonjour,
Si vous avez bien fait les choses , sur votre disque C vous devriez avoir un dossier [Ordi18 .......] et la suite puis le classeur [20220311Provisoire]....!
Le problème est donc avec la valeur se trouvant en G2 ... !!!! voir ceci : http://www.windows8facile.fr/liste-noms-caracteres-interdits-windows/
Bonne suite.
0