Macro Excel : enregistrer feuille en PDF et envoi pièce jointe - VB/VBA/VBS - Programmation
Marsh Posté le 09-06-2007 à 10:03:14
bonjour deja,
quel logiciel de création de pdfas-tu sous la main ?
Marsh Posté le 09-06-2007 à 10:16:56
Oups, trop pressé. Oui, bonjour !
J'utilise Adobe Acrobat 7
Marsh Posté le 09-06-2007 à 11:34:13
peut etre peux-tu simuler les touches de clavier pour enregistrer un document en pdf ?
Marsh Posté le 09-06-2007 à 12:20:08
ReplyMarsh Posté le 09-06-2007 à 13:26:01
tu peux pas faire un systeme du genre :
shellexecute (adobe.exe)
sendkeys "N"
et la cinématique pour ouvrir le doc excel de départ etc ?
Marsh Posté le 09-06-2007 à 14:39:08
Je n'en sais rien, je ne connais pas grand chose au VBA.
Marsh Posté le 09-06-2007 à 18:19:06
peux tu me donner la séquence de raccourcis clavier que tu utilises pour ouvrir un fichier, et l'enregistrer sous un format pdf.
ex :
Ctrl N pour fichier nouveau...
Marsh Posté le 09-06-2007 à 19:22:07
Je n'utilise aucun raccourci clavier. Il n'y en a pas pour le PDF.
Marsh Posté le 09-06-2007 à 21:55:24
Utilise le macro recorder et l'imprimante virtuelle Acrobat Pdf
puis optimise et adapte manuellement
sinon il faut aller voir sur http://www.rondebruin.nl/sendmail.htm
qui permet de joindre un feuille Xl en pj à un mail
Marsh Posté le 09-06-2007 à 22:07:38
J'ai essayé avec le bouton recorder, ça ne marche pas !
Marsh Posté le 09-06-2007 à 22:14:47
Déjà avec le macro recorder et l'imprimante virtuelle Adobe pdf
tu devrais obtenir qqch comme
|
puis ensuite
Menu VBA Outils | Références : Cocher Microsoft CDO for Exchange xxxx Library
|
solution déjà donnée sur ce même forum !!
Marsh Posté le 09-06-2007 à 22:55:12
Au final
|
Marsh Posté le 09-06-2007 à 23:23:03
Effectivement, j'ai réessayé, j'obtiens ça :
Application.ActivePrinter = "Adobe PDF sur Ne03:" |
Mais il faudrait que le fichier soit automatiquement créé dans le bon dossier et le bon nom, comme pour le fichier xls.
Pour le moment, je voudrais déjà créer ça correctement (si c'est faisable) avant de m'attaquer à l'envoir par mail.
Merci
Marsh Posté le 10-06-2007 à 05:33:58
un exemple qui utilise PDFCreator
|
Marsh Posté le 10-06-2007 à 19:10:58
Bon, ça progresse doucement, mais toujours pas au point.
Voilà la dernière version de ma macro :
Sub Enregistrement() |
Donc, ça m'enregistre bien mon fichier XLS avec le bon nom et dans le bon dossier (nom et prénom du client qui fait référence à la cellule H7), ça me lance ensuite "l'impression" PDF via l'imprimante Acrobat, avec là aussi le bon nom. Mais je dois sélectionner le dossier de destination, et même en sélectionnant le bon dossier de destination, il l'enregistre dans C:\Mes Documents (qui fait référence au port de l'imprimante PDF). Vous me direz bien que le plus simple serait de modifier le port de l'imprimante, mais vu que chaque PDF est enregistré dans un dossier différent, ça ne me convient pas.
Je rappelle que j'utilise Acrobat 7.
Merci à l'âme charitable qui pourrait venir me donner un coup de main.
Marsh Posté le 10-06-2007 à 20:36:43
Moi aussi j'ai Acrobat mais si je t'ai donné une version avec PDFCreator c'est que cela était possible et ce n'est pas faute d'avoir cherché sur Adobe.
Marsh Posté le 11-06-2007 à 03:17:10
A toi de l'adapter, en fait il fallait passer par Distiller
|
Marsh Posté le 11-06-2007 à 05:10:05
Pour la création correcte de tes dossiers et sous dossiers
|
ici une fonction de création des dossiers et sous dossiers
|
Il ne te reste plus qu'a faire ta cuisine en modifiant Sub GenererPDFDistiller pour lui passer le chemin et nom de fichier en parametres GenererPDFDistiller(ByVal Chemin As String, ByVal NomDuFichier As String)
Marsh Posté le 11-06-2007 à 08:22:31
Houla, je crois que ça deviens trop compliqué pour moi tout ça !
Surtout dans le second code, où est-ce que je rentre le sous-dossiers "Année" ?
Et puis elle y est l'imprimante Distiller avec Acrobat 7 ? En tous cas, elle n'apparaît pas avec ma liste d'imprimantes.
En tous cas, merci pour ton aide.
Marsh Posté le 11-06-2007 à 08:37:10
Réalisé sur la gaz à partir de ton code
|
Marsh Posté le 11-06-2007 à 08:46:17
Une erreur se produit ici :
Sub GenererPDFDistiller(ByVal Chemin As String, ByVal NomDuFichier As String) |
Par contre, à quoi sert l'option Explicit ?
Marsh Posté le 11-06-2007 à 09:46:59
Il ne faut pas oublier :
VBA Menu Outils | Références COCHER Acrobat Distiller
Microsoft CDO Exchange xxxx Library
Explicit [F1] => Aide en ligne
Marsh Posté le 11-06-2007 à 10:39:08
Il me met une erreur "Cellule N° Facture incorrecte". Je pense que cela vient du fait que tu as mis dans le code :
If Len(Numfact) = 0 Or Not (IsNumeric(Numfact)) Then |
Or, le numéro de facture est de type ROBE31976 par exemple !
Comment corriger cette ligne ?
Marsh Posté le 11-06-2007 à 10:40:44
si ton nombre de caracteres reste fixe avec ROBE ou quoi que ce soit en 4 caractere puis un nombre, utilise la fonction mid() [F1]
Marsh Posté le 11-06-2007 à 10:44:02
Correction du code effectuée en supprimant Or Not (IsNumeric(Numfact))
Marsh Posté le 11-06-2007 à 10:59:10
Erreur :
Dim CdoMessage As CDO.Message |
Je ne trouve pas Microsoft CDO Exchange xxxx Library
Marsh Posté le 11-06-2007 à 11:31:09
Bon, merci pour votre aide, ça avance.....
Chez moi, ça ne s'appelle pas Microsoft CDO Exchange xxxx Library mais Microsoft CDO for Windows 2000 Library
Voilà où en est le code :
|
Avec tout ça, il me génère bien .ps et .log dans le dossier Factures, mais il ne génère pas le .pdf !! D'où une erreur lors de la création du mail. Il ne manque pas une ligne pour transformer le PS en PDF ?
Marsh Posté le 11-06-2007 à 11:50:22
ReplyMarsh Posté le 11-06-2007 à 11:55:46
Ici je n'ai strictement aucun problemes , Quelle message d'erreur as-tu ?
il faut passer en mode pas à pas et déterminer ( si possible ) l'endroit qui amene cette erreur
Quand tu double clique sur le fichier PS cela doit lancer Acrobat Distiller et générer le PDF ?
Ici c'est le cas
Marsh Posté le 11-06-2007 à 12:20:01
Erreur d'exécution '-2147024894 (80070002)' :
Le fichier spécifié est introuvable
Si je clique sur déboguage, il m'envoit sur cette ligne :
.AddAttachment sNomFichierPDF |
Dans le dossier Factures, j'ai bien le .log et le .ps mais aucun .pdf !
Marsh Posté le 11-06-2007 à 12:22:24
Je viens de voir le log de disitiller :
%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%
%%[ Warning: PostScript error. No PDF file produced. ] %%
Durée de conversion : 0 secondes (00:00:00)
**** Fin du travail ****
Marsh Posté le 11-06-2007 à 12:26:20
Ici le même log produit :
%%[ ProductName: Distiller ]%%
%%[ Warning: Helvetica not found, using Font Substitution. Font cannot be embedded.]%%
%%[ Warning: Helvetica-Bold not found, using Font Substitution. Font cannot be embedded.]%%
%%[Page: 1]%%
%%[LastPage]%%
Peut être un paramétrage de Distiller ? ou de timing ?
|
Marsh Posté le 11-06-2007 à 12:48:09
Toujours pas de création du PDF.
Y'a moyen que je te fasse passer mon doc Excel par mail pour qur tu y jettes un oeil ?
Marsh Posté le 11-06-2007 à 12:54:48
si a phmdùfldsùmflmùdslfùmdslfmùls
Marsh Posté le 11-06-2007 à 13:52:50
Zut, je ne vois pas pourquoi ça déconne chez moi. Tu as quelle version d'Acrobat ?
Tu as utilisé mon fichier sans rien modifier ?
Marsh Posté le 11-06-2007 à 14:04:35
Acrobat 6.0.6
les seules choses changées sont le chemin des fichiers
Supprimer la boucle d'attente
la ref CDO elle passe à 2000 chez moi
AdobePdfMakerForOffice est absent chez moi , je le décocherai chez toi pour voir
Marsh Posté le 11-06-2007 à 14:06:42
Tu as donc bien Microsoft CDO for Windows 2000 Library ?
Marsh Posté le 09-06-2007 à 09:19:03
Et oui, encore moi avec mes macros.
Pour ma future activité, je crée une facture sous Excel. J'ai créé une macro qui permet d'enregistrer la facture dans un dossier portant le nom du client, le fichier étant automatiquement nommé avec la date et le numéro de facture. Voilà le code.
Maintenant, je cherche à ce que ma feuille soit automatiquement générée en PDF avec le même nom et, si possible, qu'un mail soit automatiquement ouvert avec le fichier au format PDF en pièce jointe.
Si quelqu'un peut m'aider......
Message édité par hyperion66 le 09-06-2007 à 09:22:02
---------------
MATOS VELO - Club Strava Matos Vélo