Excel : impression "auto" d'onglets => PDF

Excel : impression "auto" d'onglets => PDF - VB/VBA/VBS - Programmation

Marsh Posté le 26-06-2009 à 16:15:40    

Bonjour,
 
j'ai un document Excel qui contient X onglets (des factures  :pt1cable: ) et je souhaite pouvoir faire une macro pour les imprimer.
 
en gros, imprimer X onglets (les onglets sélectionnés p.ex.) et, pour chacun, les faire sortir sur Adobe PDF, chacun dans un PDF séparé.
 
Je ne viens pas les mains vides, j'ai trouvé qq éléments :
 
- pour sélectionner le contenu d'une cellule :

Code :
  1. Range("C14" ).Select
  2. Selection.Copy
  3. Application.CutCopyMode = False


 
compter le nb de feuilles dans un document : FAQ excel
 
pour imprimer :

Code :
  1. ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"


 
ce que je souhaite savoir :
- Une macro générée sur un XLS ouvert dans Excel 2007 sera-t-elle compatible ("exécutable" ) sous Excel 2003 ?
- y a-t-il des sites qui permettent de faire qq tests, je parle pas forcément du "hello world" à la c*n mais ce genre, pour que je suisse le faire pas à pas ?
- comment trouver les paramètres de cette fonction print ?
 
merci d'avance.
 
 


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 26-06-2009 à 16:15:40   

Reply

Marsh Posté le 26-06-2009 à 17:03:25    

Tu peux avoir des toutes petits incompatibilités au niveau des tes macros entre du 2007 et du 2003 (ça m'est arrivé sur je sais plus quoi... mais vu que ça plantait pas, je l'avais pas vu tout de suite, et c'était plutôt mineur... c'était pour un tri en fait, voilà), mais ça reste des petits trucs.
 
Un site pour faire des tests ? pourquoi ne fais tu pas tes tests tout seul ? je comprends pas...
 
Pour les paramètres, tu fais un F1 quand tu es sur la fonction dans ton code VBA, et là tu as une aide pas trop trop mal fichue.
 
Le plus simple à mon sens, c'est de faire un mix entre ce que tu as déjà, et un enregistrement d'une macro que tu vas faire toi même
(en 2007, onglet développeur, tu enregistres la macro, tu fais ce que tu voudrais que ça fasse (impression d'un onglet en pdf), et ensuite tu arrêtes la macro, et tu regardes le code qu'il a généré... tu t'en inspires, tu le nettoie et adapte à ton cas précis.
 
et hop, ça roule !

Reply

Marsh Posté le 26-06-2009 à 17:49:43    

salut,
 
Merci d'avoir pris le temps de répondre.
 
ce que j'entends par "site pour faire des tests" c'est un site qui explique des manips pour débugger. Je suis un habitué du PHP et il y a pas mal d'outils PHP pour bébugger, je vais chercher +/- équivalent en VB mais est-ce qu'il y a des sites qui font des tutos pour ça ... mystère.
 
pour les paramètres : ok, c'est vrai que l'aide de windows est en général assez peu loquace, si tu me dis que celle-là est *pas trop mal* alors je vais m'y attarder plus.
 
pour ce que j'ai posté, justement je me suis inspiré d'une macro que j'ai faite, pour laquelle j'ai analysé le code.
 
A suivre au prochain n° ...


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 26-06-2009 à 19:40:40    

Salut, Excel 2007 SP2 intègre une sortie xps/pdf ce qui n'est pas le cas des versions antérieures d'Excel
De toute façon la compatibilité est généralement ascendante, pour assurer une compatibilté descendante
Voir http://www.developpez.net/forums/d [...] distiller/ et adapter à ton contexte

Reply

Marsh Posté le 26-06-2009 à 21:19:06    

Je dois m'absenter une petite semaine. Soyez certain que je vous réponds dès que j'ai du neuf, merci !


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 29-06-2009 à 09:44:36    

Jvois pas trop le rapport entre la sortie pdf et la compatibilité.... tu peux nous expliquer kiki ?

Reply

Marsh Posté le 29-06-2009 à 11:20:03    

il parle de la compatibilité des macros sans doute.
 
J'avais pas pensé à la sortie PDF depuis le SP2, le souci est que chez moi je suis en 2007, mais en entreprise, c'est encore du 2003, et c'est pas encore prévu de migrer tout le monde en 2007...


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 29-06-2009 à 11:56:43    

Pour la sortie PDF, tu peux aussi t'appuyer sur le fait d'imprimer sur une imprimante PDF particulière (genre un truc installé en standard dans ta boite ?)

Reply

Marsh Posté le 29-06-2009 à 12:07:51    

Acrobat 9 standard ;)
 
Mais le souci n'est pas au niveau du PDF, mais bien de générer 1 PDF par onglet (via Acrobat, il y a soit un PDF qui contient le 1er onglet = onglet courant, soit tous les onglets dans un même PDF) et si possible (et c'est là l'intérêt de la macro) de renommer à la volée les PDF générés avec le contenu d'une case + ".PDF".
 
Dans la mesure où c'est une tâche répétitive et conséquente (il n'y a pas que 3 onglets, mais c'est plutôt une 50aine par fichier excel, et il y a régulièrement de nouveaux fichiers, il faut minimiser l'interaction humaine pour réduire le risque d'erreur ...


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 29-06-2009 à 14:11:03    

pour le fait de renommer un fichier, tu auras pas de souci de compat' dans les macros... c'est vraiment du standard l'opération sur les fichiers...
 
Pour Acrobat reader 9... ce n'est pas une "imprimante pdf", mais ton reader... moi je te parle de ce qui permet de générer le pdf... mais en fait, est-ce que tu as besoin que ces pdf soient générés sur tous les postes, ou ensuite juste lus ?


Message édité par Ptit loup le 29-06-2009 à 14:12:09
Reply

Marsh Posté le 29-06-2009 à 14:11:03   

Reply

Marsh Posté le 29-06-2009 à 20:30:11    

non, je parle bien d'Acrobat 9 standard, pas simplement le "reader". On a payé assez cher pour avoir des licences pour ce truc ...
 
Et grâce à lui il y a de quoi générer des PDF.
Pas spécialement de lecture, c'est juste pour partir d'un gros fichier excel pour en générer 1 PDF par onglet (car 1 onglet = 1 facture). Les PDF seront joints au dossier d'un client par la suite.


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 29-06-2009 à 20:58:35    

Salut, donc le lien que j'ai fourni devrait te donner la solution

Reply

Marsh Posté le 29-06-2009 à 23:31:14    

De mémoire, je ne sais plus si Acrobat 9 est livré avec Distiller ... les version 6 et 7 j'en ai vu trainer sur de vieux PC, donc oui, mais va dire à ton chef "non, non, il te faut un 486 DX2 66, pour générer un pdf c'est mieux que ton core2duo" :pt1cable:
Bon, je ne pourrai tester que la semaine prochaine, mais promis, je te tiens au courant.


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 09-07-2009 à 14:23:42    

kiki29 a écrit :

Salut, donc le lien que j'ai fourni devrait te donner la solution


Hello,
je suis en train d'essayer, mais de ce qu'en dit le topic, ça génère un PDF en sortie ... Or moi si j'ai X onglets, je souhaite avoir X PDF.
Je vais voir ce que je peux adapter. Et j'ai Distiller 9.
 
EDIT : ça coince sur la ligne  

Code :
  1. Dim PDFDist As PdfDistiller


l'alerte est :
"erreur de compilation, type défini par l'utilisateur non défini".
et si je commente la ligne, il coince un peu plus bas quand tu instancies un new Distiller()


Message édité par NewsletTux le 09-07-2009 à 14:28:30

---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 09-07-2009 à 17:22:18    

Salut, il faut tout lire surtout ce qui est marqué en gras au debut du lien que je t'ai donné

Reply

Marsh Posté le 27-07-2009 à 11:29:12    

Salut,
je viens de réessayer, je n'y suis pas encore parvenu. Au débogage, il boucle sur la première boucle for. par contre distiller 9 n'a pas l'air d'avoir le bug que j'avais rencontré. Comme je fais ça sur mon temps libre en // de mon plus gros projet, ça prendra du temps ...


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed