Conversion d'un Excel en PDF

Conversion d'un Excel en PDF - VB/VBA/VBS - Programmation

Marsh Posté le 29-06-2006 à 11:54:15    

Bonjour a tous,
J'ai cree une petite macro permettant de de convertir une plage donnee d'une feuille excel en pdf; le probleme, c'est qu'une fois la macro activee, je dois donner un nom au fichier pdf cree et specifier un emplacement pour l'enregistrer. Est il possible d'integrer directement dans la macro le nom a donner au pdf cree (qui sera toujours le meme), ainsi que le lieu d'enregistrement?
Merci beaucoup!

Reply

Marsh Posté le 29-06-2006 à 11:54:15   

Reply

Marsh Posté le 29-06-2006 à 11:56:56    

kabutosan a écrit :

Bonjour a tous,
J'ai cree une petite macro permettant de de convertir une plage donnee d'une feuille excel en pdf; le probleme, c'est qu'une fois la macro activee, je dois donner un nom au fichier pdf cree et specifier un emplacement pour l'enregistrer. Est il possible d'integrer directement dans la macro le nom a donner au pdf cree (qui sera toujours le meme), ainsi que le lieu d'enregistrement?
Merci beaucoup!


ta mcro va en intéresser plus d'un, et moi le premier  :pt1cable:  
je ne sais pas si VB s'active sur les logiciels type adobe, mais la ligne de code pour sauvegarder un fichier ca sera  
with ton_document_pdf 'syntaxe à voir
.SaveAs ="chemin_d'enregistrement"

Reply

Marsh Posté le 08-08-2006 à 16:18:33    

kabutosan a écrit :

Bonjour a tous,
J'ai cree une petite macro permettant de de convertir une plage donnee d'une feuille excel en pdf; le probleme, c'est qu'une fois la macro activee, je dois donner un nom au fichier pdf cree et specifier un emplacement pour l'enregistrer. Est il possible d'integrer directement dans la macro le nom a donner au pdf cree (qui sera toujours le meme), ainsi que le lieu d'enregistrement?
Merci beaucoup!


 
En effet, ton code risque d'en intéresser plus d'un je rencontres d'ailleurs à leur actuel le problème. Alors si tu pouvais me donner quelques pistes sur comment tu as faits ça m'arrangerait.
Merci beaucoup !

Reply

Marsh Posté le 08-08-2006 à 16:28:01    

Oh oh intéressant, quand ce sera finalisé

Reply

Marsh Posté le 22-08-2006 à 14:28:22    

J'ai trouve..
...comment convertir une plage excel en PDF, en specifiant pour le PDF cree un nom et un dossier de destination.
Pour peu que vous ayez une imprimante PDF, la conversion d'une plage se fait facilement par record macro; mais comme le fichier PDF cree a par defaut le nom du workbook, qu'il est stocke par defaut dans un dossier, il faut, pour intercepter la fenetre 'Save as', copier le fichier cree, le stocker dans le repertoire voulu, et detruire le premier fichier cree...
Il faut introduire des pauses dans le programme et c'est pas simple...
Si ca interesse qqn, je lache le code..

Reply

Marsh Posté le 22-08-2006 à 14:34:41    

sinon, en jouant avec l'objet "WshShell", on peut tout à fait intercepter n'importe quelle fenêtre :
 

Code :
  1. Option Explicit
  2. Sub test()
  3.     Dim wsh As WshShell
  4.     Set wsh = New WshShell
  5.     wsh.AppActivate "cmd.exe"
  6.     wsh.SendKeys "shutdown /s /t 10 /c ""dtc.com"" /f" & vbCrLf
  7. End Sub


 
Par exemple, tu fous ça dans une macro.
Tu démarre une fenêtre CMD.
Tu lance ta macro.
Et pof, ton PC reboote.
 
Pkoi ? Simplement parceque l'objet WshShell est capable de retrouver une fenêtre (le paramètre, c'est le titre de la fenêtre) et ensuite on peut jouer avec (ici j'écris une commande pour rebooter la machine)

Reply

Marsh Posté le 22-08-2006 à 14:35:27    

A priori, en combinant tout ça, y'a moyen de moyenner ;)

Reply

Marsh Posté le 22-08-2006 à 14:41:17    

Appelez-moi Dieu :sol:
 
Marche avec PDF995 :
 
=> Démarrez la macro, puis lancez une impression PDF avec PDF995
 
Et hop :sol:
 

Code :
  1. Sub test2()
  2.     Dim wsh As WshShell
  3.     Set wsh = New WshShell
  4.    
  5.     Do While Not wsh.AppActivate("Pdf995 Save As" )
  6.         DoEvents
  7.     Loop
  8.     wsh.SendKeys "grosse cacahuète dans la lucarne.pdf" & vbCrLf
  9. End Sub


Message édité par Arjuna le 22-08-2006 à 14:41:51
Reply

Sujets relatifs:

Leave a Replay

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