IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Convertir un .xls en .pdf sans intervention


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Par défaut Convertir un .xls en .pdf sans intervention
    Bonjour,

    Cela fait plusieurs heures que je cherche en vain une réponse à ma question alors je me décide à poster içi.

    Je travaille en entreprise et nous avons une application métier qui génère des fichiers .xls tous les matins.

    Mon objectif est de convertir certains de ces fichiers en .pdf automatiquement (sans aucune intervention de ma part car le traitement aura lieu très tôt le matin).

    J'ai PDFCreator et CutePDF mais je pense que PDFCreator répond mieux au besoin d'automatisation que je rencontre.

    J'ai récupéré un code sur Internet qui permet de faire ça mais uniquement si le fichier .xls est ouvert et que le focus est sur la feuille que l'on veut imprimer.

    J'ai donc essayé d'adapter ce code pour qu'il aille chercher les fichiers .xls dans un dossier et qu'ils les impriment en .pdf tout seul comme un grand mais je n'ai abouti à rien.

    Pourriez-vous m'aider svp ?

    Merci d'avance pour vos réponses


    Voici le code que j'ai récupéré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     sNomPDF = "Essai.pdf"
        sNomXLS = "Test.xls"
        sCheminPDF = "c:\"
     
        'If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub
     
        Set jobPDF = CreateObject("PDFCreator.clsPDFCreator")
     
        With jobPDF
            If .cStart("/NoProcessingAtStartup") = False Then
                MsgBox "Initialisation de PDFCreator impossible", vbCritical + vbOKOnly, "PDFCreator"
            End If
            .cOption("UseAutosave") = 1
            .cOption("UseAutosaveDirectory") = 1
            .cOption("AutosaveDirectory") = sCheminPDF
            .cOption("AutosaveFilename") = sNomPDF
     
            '0=PDF, 1=Png, 2=jpg, 3=bmp, 4=pcx, 5=tif, 6=ps, 7=eps, 8=txt
            .cOption("AutosaveFormat") = 0
            .cClearCache
        End With
     
        ActiveWindow.SelectedSheets.PrintOut copies:=1, ActivePrinter:="PDFCreator"
     
        'Fichier dans la file d'attente
        Do Until jobPDF.cCountOfPrintjobs = 1
            DoEvents
        Loop
        jobPDF.cPrinterStop = False
     
        'Attendre que la file d'attente soit vide
        Do Until jobPDF.cCountOfPrintjobs = 0
            DoEvents
        Loop
        jobPDF.cClose
        Set jobPDF = Nothing

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    bonjour,
    excel est-il également installé sur la machine sur laquelle sera lancé le script ?
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Par défaut
    Bonjour,

    Oui, Excel est bien installé sur le poste qui fera le traitement.

  4. #4
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    alors il suffit de piloter excel comme serveur com, définir la variable objet activewindow qui est utilisée dans ton exemple et ça roulera tout seul
    exemples de pilotage
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Par défaut
    Merci pour ta réponse omen999.

    J'ai regardé l'exemple que tu m'a fournis mais peux-tu me dire ce que je dois changer sur mon code et surtout, est-ce que je dois installer quelque chose pour gérer les ActiveX ?

  6. #6
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    peux-tu me dire ce que je dois changer sur mon code
    tu dois ajouter le code qui va définir la variable objet activewindow en t'inspirant des exemples donnés
    est-ce que je dois installer quelque chose pour gérer les ActiveX ?
    rien du tout, la fonction createobject sert justement à créer des objets activex utilisables dans un script
    si excel a été correctement installé, il se sera référencé tout seul comme un grand dans la base de registres et
    un objet excel pourra être instancié via ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oExcel = CreateObject("Excel.Application")
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/11/2011, 10h10
  2. Convertir fichier .xls en .pdf
    Par Niiin dans le forum C++
    Réponses: 5
    Dernier message: 08/03/2011, 01h22
  3. Convertir des .xls en .pdf
    Par Opera140 dans le forum Delphi
    Réponses: 10
    Dernier message: 04/04/2007, 12h36
  4. Convertir des .xls en .pdf
    Par Opera140 dans le forum Documents
    Réponses: 2
    Dernier message: 19/03/2007, 22h31
  5. impression PDF sans intervention de l'utilisateur
    Par jdelges dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 12/03/2007, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo