enregistrement fichier excel 2007 en pdf

enregistrement fichier excel 2007 en pdf - VB/VBA/VBS - Programmation

Marsh Posté le 16-03-2011 à 09:29:45    

Bonjour tout le monde,
 
Malgré le sujet évoqué sur de nombreux forums, je n'arrive pas à solutionner mon problème.
 
Je souhaite à partir d'un fichier excel 2007 sélectionner quelques onglet, les imprimer en pdf et les enregistrer dans un répertoire (toujours le même) avec comme nom le nom du fichier Excel + la valeur d'une cellule du fichier.
 
Etant novice sur les macros, j'ai utilisé l'enregistreur de macro mais malheureusement rien ne fait mention dans le code de la partie enregistrement dans le dossier souhaité.
 
voici mon (très faible) code :

Code :
  1. Sub deplacer()
  2. '
  3. ' deplacer Macro
  4. '
  5. '
  6.     Sheets(Array("Couts de structures", "CE Struct", "CE Int" )).Select
  7.     Sheets("Couts de structures" ).Activate
  8.     ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
  9. End Sub


 
Quelqu'un peut-il m'aiguiller ?
 
Merci

Reply

Marsh Posté le 16-03-2011 à 09:29:45   

Reply

Marsh Posté le 16-03-2011 à 09:44:52    

Salut,voir sur http://www.developpez.net/forums/d [...] distiller/ en bas de page , ce qui devrait aboutir à qqch comme


Option Explicit
 
Sub Tst_2007()
Dim sNomFichierPDF As String
 
    sNomFichierPDF = ThisWorkbook.Path & "\" & "Essai.pdf"
    Application.ScreenUpdating = False
 
    Sheets(Array("Feuil1", "Feuil3", "Feuil5" )).Select
     
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sNomFichierPDF _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False
     
    Sheets("Feuil1" ).Select
    Application.ScreenUpdating = True
End Sub


 
Curieux que l'enregistreur de macros ne te donne rien ?


Message édité par kiki29 le 16-03-2011 à 10:38:51
Reply

Marsh Posté le 16-03-2011 à 12:10:06    

Bonjour kiki29 et merci,
 
Je ne comprends pas à quoi correspond la partie

Code :
  1. Sheets("Feuil1" ).Select
  2.     Application.ScreenUpdating = True


 
peux tu m'expliquer ?

Reply

Marsh Posté le 16-03-2011 à 13:48:05    

Le code ci-dessous fonctionne parfaitement :
 

Code :
  1. Sub Tst_2007()
  2. Dim sNomFichierPDF As String
  3.  
  4.     sNomFichierPDF = ThisWorkbook.path & "\" & "Couts de structures " & Sheets("DATA" ).range("A2" ).Value & ".pdf "
  5.     Application.ScreenUpdating = False
  6.     Sheets(Array("Couts de structures", "CE Struct", "CE Int", "CE VIP", "CE Staff" )).Select
  7.    
  8.     ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sNomFichierPDF _
  9.         , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
  10.         :=False, OpenAfterPublish:=False
  11. End Sub


 
En revanche, le fichier pdf est enregistré dans le dossier où est le fichier excel, comment faire pour l'enregistrer dans un autre dossier ?

Reply

Marsh Posté le 16-03-2011 à 14:49:34    

Application.ScreenUpdating = False

Cette ligne permet que les actions se fassent sans que la fenêtre active ne soit mise à jour en direct, les traitements se faisant en arrière plan, ce qui permet de gagner un peu de vitesse, quand il y a, par exemple, une boucle sur un ensemble de cellules. Mais ici, dans le cas de la sauvegarde, cela ne sert pas à grand chose.
 
Pour choisir un autre dossier de destination, il suffit de changer la définition de sNomFichierPDF. Par exemple :

  sNomFichierPDF = "C:\Dossier_toto\" & "Couts de structures " & Sheets("DATA" ).range("A2" ).Value & ".pdf "

Reply

Marsh Posté le 16-03-2011 à 15:00:24    

Parfait, tout fonctionne parfaitement, merci à vous deux !!!

Reply

Sujets relatifs:

Leave a Replay

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