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 :

chercher un graphique feuille excel, imprimer en pdf , enregister dans repertoire 2


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut chercher un graphique feuille excel, imprimer en pdf , enregister dans repertoire 2
    Bonjour a tous,

    Je reprends ici la discussion que j'ai commencé plus bas. En fait, j'ai un classeur excel dans lequel plusieurs feuilles sont des graphes (voir imp.pdf en attaché).

    1. je veut aller chercher ces feuilles sur lesquelles sont ces graphiques (il me faut l'adresse non pas du classeur comme fait actuellement dans mon code) mais l'adresse de la feuille qui comporte le graphique.

    2.Les imprimer grâce à une imprimante virtuelle en PDF

    3. Enregistrer les PDF dans une repertoire bien définie.

    la ou j'en suit, j'arrive à créer le PDF, mais il faut recuperer ce PDF dans une variable (pdf) pour faire ensuite une sauvegarde par pdf.SaveAs "repertoirecible.pdf" et je n'arrive pas à faire l'affectation du Doc.PrintOut dans une variable que j'appelle pdf

    Questions:
    Comment recuperer le graphe de la feuille et non le classeur tout entier ?

    Comment faire l'affectation ?

    Mon code:
    -----------

    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
    37
    38
    39
    40
    41
    42
    43
    44
    Dim xlapp, classeur, feuille, Doc, pdf
    
    'J'ouvre Excel
    Set xlapp = CreateObject("Excel.Application")
    
    'Il reste visible
    xlapp.Visible = True
    
    'Je definit ceci
    Set classeur = xlapp.Workbooks.add
    Set feuille = xlapp.ActiveSheet
    
    'J'ouvre Ma feuille xls
    'Normalement  je dois ouvrir prendre le graphe qui est sur la feuille
    'mais ca je sais pas faire
    
    Set Doc = xlApp.WorkBooks.open("C:\Documents and Settings\stagiaire\Bureau\Classeur1.xls")
    
    'Ici on définit l'imprimante qui sera utilisée.
    
    ActivePrinter="PDFCreator"
    
    
    'J'imprime
    
    Doc.PrintOut
    
    
    'je recupére le fichier imprimé dans une variable que j'appelle pdf
    
    'comment le faire ?
    
    'Deplacement du fichier
    
    Doc.SaveAs "C:\Documents and Settings\stagiaire\Bureau\VBS\sauvegarde.xls"    '-- enregistre le nouveau xls dans le nouveau repetoire
    
    'Ce qui devrait être fait si le pdf imprimé est dans la variable pdf
    
    'pdf.SaveAs "C:\Documents and Settings\stagiaire\Bureau\VBS\sauvegarde.xls"    '-- enregistre le nouveau xls dans le nouveau repetoire
    
    
    'Fermeture et Exit de l'application
    Doc.Close
    xlApp.quit

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par bourbe
    ....
    la ou j'en suit, j'arrive à créer le PDF...
    bon et il est créé ou ce pdf ..?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut Petit à Petit l'oiseau fait son nid
    Salut bbil,

    j'ai fais pour commencer cette procédure avec un document word sur la base d'une procedure prise sur le site et la lorsque je la lance avec word ca imprime le pdf et ca me redonne la main et me demande ou enregister.

    Je l'ai donc adapter à excel mais ici dans ce cas ca lance l'impression, ca imprime mais ca ne me redonne pas la main pour me demander ou l'enregister. Je ne peux donc pas te dire ou ce PDF s'en vas. Si c'etait le cas peut etre je suis ton regard en te disant qu'on pourrais aller le copier la bas et l'enregister ou on veut.

    Par contre j'ai resolu un probléme de plus c'est celui du graphe dans le classeur:

    au lieu de Doc.PrintOut, faire Doc.Sheets("Graph1").PrintOut 'Graph1 est le nom de la feuille dans le classeur1 qui est à imprimer

    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
    37
    38
    39
    40
    41
    42
    43
    44
    Dim xlapp, classeur, feuille, Doc, pdf
    
    'J'ouvre Excel
    Set xlapp = CreateObject("Excel.Application")
    
    'Il reste visible
    xlapp.Visible = True
    
    'Je definit ceci
    Set classeur = xlapp.Workbooks.add
    Set feuille = xlapp.ActiveSheet
    
    'J'ouvre Ma feuille xls
    'Normalement  je dois ouvrir prendre le graphe qui est sur la feuille
    'mais ca je sais pas faire
    
    Set Doc = xlApp.WorkBooks.open("C:\Documents and Settings\stagiaire\Bureau\Classeur1.xls")
    
    'Ici on définit l'imprimante qui sera utilisée.
    
    ActivePrinter="PDFCreator"
    
    
    'J'imprime le graphe 
    
    
    Doc.Sheets("Graph1").PrintOut    'Graph1 est le nom de la feuille dans le classeur1 qui est à imprimer
    
    
    'je recupére le fichier imprimé dans une variable que j'appelle pdf
    
    'comment le faire ?
    
    'Deplacement du fichier
    
    Doc.SaveAs "C:\Documents and Settings\stagiaire\Bureau\VBS\sauvegarde.xls"    '-- enregistre le nouveau xls dans le nouveau repetoire
    
    'Ce qui devrait être fait si le pdf imprimé est dans la variable pdf
    
    'pdf.SaveAs "C:\Documents and Settings\stagiaire\Bureau\VBS\sauvegarde.xls"    '-- enregistre le nouveau xls dans le nouveau repetoire
    
    'Fermeture et Exit de l'application
    Doc.Close
    xlApp.quit

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par bourbe
    ..imprime le pdf et ca me redonne la main et me demande ou enregister....
    j'ai pas vu ce code word..? mais intéresse toi à PdfCreator... et à ce qui se passe lorsque tu imprime "manuellement" vers cette imprimante "virtuelle"..

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Le programme Word

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim WordApp, Doc
    Set WordApp = CreateObject("Word.Application")
    
    'Ici on définit l'imprimante qui sera utilisée.
    WordApp.ActivePrinter="PDFCreator"
    Set Doc = WordApp.documents.open("C:\Documents and Settings\stagiaire\Bureau\cite inter.doc")
    
    Doc.PrintOut
    
    Doc.SaveAs "C:\Documents and Settings\stagiaire\Bureau\VBS\nouveau_word.doc"
    
    Doc.Close
    WordApp.Quit
    Manuellement avec pdfcreator, on lance l'impression, elle s'enclenche et ensuite une fenetre s'ouvre pour te demander le nom sous lequel l'enregistrer tu le tape tu clique sur enregistrer ensuite une fenetre windows s'ouvre et te demande le repertoire ou l'enregistrer et clique ok et c'est fini

    j'aimerais donc reprendre tous ca en code vbs

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    ben .. c'est pas dans le code la sauvegarde (du pdf..) .. le saveAs il ne permet que la sauvegarde du document word ... ton probléme dans ton code semble être la sélection de l'imprimante

    n'as tu pas une erreur la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActivePrinter="PDFCreator"
    ... essai de modifier :par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xApp.ActivePrinter="PDFCreator"

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut erreur !!!!!!!!!!!!!!!!
    Lorsque j'ajoute ca ce me fait une erreur

    voir le pdf en attaché et stp agrandi le au max pour bien lir

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par bourbe
    Lorsque j'ajoute ca ce me fait une erreur

    voir le pdf en attaché et stp agrandi le au max pour bien lir
    c'est quoi l'erreur..?

    et tu sur du nom de l'imprimante...?

    sous excel .. sélectionne l'imprimante ... .. puis ALT-F11, CTRL G et dans la fenêtre exécution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    msgbox Application.activeprinter

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Bonjour bbil,

    déja, je te remercie de m'accompagner dans cette tache car j'ai vraiment besoin de tes lumieres vu le fait que ce n'est pas me spécialité le codage en VBS.

    Citation Envoyé par bbil
    c'est quoi l'erreur..?


    ceci c'est lorsque je remplace ActivePrinter="PDFCreator" par xlApp.ActivePrinter="PDFCreator"

    Erreur: Impossible de definir la proprieté ActivePrinter de la classe Aplication.


    Citation Envoyé par bbil
    est tu sur du nom de l'imprimante ?

    Je suis quasi sur de ce nom car cela a marché pour le fichier word et pour l'avoir j'ai fait un imprimer ensuite toute les imprimantes disponibles se sont affichées et j'ai simplement du copier le nom de celle que je desirais.

    Citation Envoyé par bbil
    msgbox xlApp.activeprinter="PDFCreator"
    Lorsque dans mon code je remplace ActivePrinter="PDFCreator" par msgbox xlApp.activeprinter="PDFCreator"
    et le lance la macro,

    elle me retourne une petite fenetre avec comme message dessus : faux et un bouton OK en dessous.

    Lorsque je clique sur le bouton OK ca lance l'impression et me redonne la mais en me demandant ou l'enregister.

    Je resume l'unique probléme actuel:

    l impression du PDF se lance mais on ne sais pas ou il vas . Ce PDF imprimé devrait etre sauvegarder dans un repertoire bien precis.


    Merci d'avance

  10. #10
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    c'est pas ça que j'ai dis ... ..

    relis mon message ...

    je ne t'ai pas demander de remplacer ta ligne par msgbox....

    ce n'ai pas ce code que j'ai écris non plus ...!

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Bonsoir,

    Je pense avoir bien lu et relu ton message et pour la procedure avec les racourcis, je n'ai rien eu. Pour le msgbox puisque je ne savais pas trop quoi en faire alors j'ai fait comme ci dessus.

    Mais lorsque j'execute cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set Application = CreateObject("Excel.Application")
     
    msgbox Application.activeprinter
    ca me donne liste des imprimantes disponibles et dans cette liste il y a pdfcreator

  12. #12
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par bourbe
    ...

    ca me donne liste des imprimantes disponibles et dans cette liste il y a pdfcreator
    comment un msgbox te donne une liste... !

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par bbil
    comment un msgbox te donne une liste... !

    ca me retourne une petite fenetre sur laquelle il y a la liste des imprimantes et on bouton OK

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut Une autre petite avancée
    Bonjour bbil et aux autres ...

    J'ai fais une petite avancé dans le code en ce qui concerne la sauvegarde autaumatique aprés l'impression. Je rapelle le code :

    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
    Dim xlapp, classeur, feuille, Doc, pdf
     
    'J'ouvre Excel
    Set xlapp = CreateObject("Excel.Application")
     
    'Il reste visible
    xlapp.Visible = True
     
    'Je definit ceci
    'Set classeur = xlapp.Workbooks.add              'ouvre une feuille excel vierge
    'Set feuille = xlapp.ActiveSheet
     
    'J'ouvre Ma feuille xls
     
    Set Doc = xlApp.WorkBooks.open("C:\Documents and Settings\stagiaire\Bureau\Classeur1.xls")
     
    'Ici on définit l'imprimante qui sera utilisée.
     
    ActivePrinter="PDFCreator"
    Ce premier bout (au dessus )de code ouvre le document à imprimer et active l'imprimante à uliliser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Efface le fichier sauvegarde.xls s'il existe déja
     
    Dim oFSO
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    oFSO.DeleteFile "C:\Documents and Settings\stagiaire\Bureau\VBS\impdf.pdf",True
    Puisque ces impressions seront périodiques, ce deuxieme bout (au dessus )de code efface le doc impdf.pdf s'il existe deja dans le repertoire C:\Documents and Settings\stagiaire\Bureau\VBS et s'il n'exite pas, il affichera une erreur. Pour contourner ce probléme, au debut je mettrais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'On Error Resume Next  'Quand fini, activer ceci pour la ligne 26 au cas ou le fichier n'existe pas
    et ce sera resolu à ce niveau (code au dessus);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'J'imprime le graph1 de la feuille du classeur connu
     
    Doc.Sheets("Graph1").PrintOut
    Ce bout de code (au dessus ) lance l'impression du graphique sur la feuille.

    Sauvegarde et renommage Automatique du pdf imprimé
    -----------------------------------------------------

    J'aimerais sauvegarder sous un nouveau nom le fichier imprimé dans un repertoire bien spécifique. Pour ce faire, j'ai trouvé ceci sur le Net et je l'ai ajouté à mon programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'je définis les taches automatiques qui seront faites aprés l'impression: retrouver automatiquement le chemin de sauvegarde
    'renommer automatiquement le pdf crée
     
    AutosaveDirectory = "C:\Documents and Settings\user\Bureau\VBS" ' repertoire dans lequel l'enregistrement sera fait
    AutosaveFilename = "impdf" ' Nom sous lequel l'enregistrement sera fait
    UseAutosave = 1
    UseAutosaveDirectory = 1
    UseAutosaveFilename = 1
    AutosaveFormat = 0 ' PDF
    1.Au premeir test ca a reconnu automatiquement ce repertoire et la boite d'enregistrement s'est placé sur celui ci mais je dois encore mettre le nom et lancer l'enregistrement (cliquer sur enregistrer) à la main.

    deuxieme probléme, lorsque je change de repertoire par exemple:

    2.C:\Documents and Settings\user\Bureau\Nouveau_repertoire

    et je relance l'application, elle reste sur l'ancien je ne sais pas pourquoi

    Questions:

    Comment le forcer à renommer et enregistrer automatiquement ? (point 1)
    Comment le forcer a reconnaitre le bon repertoire (point 2)

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Personne n'a une idée sur comment finir ces deux points car la je n'ai actuellement aucune idée

  16. #16
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par bourbe
    Personne n'a une idée sur comment finir ces deux points car la je n'ai actuellement aucune idée
    il me semble t'avoir déjà dit de prendre un probléme aprés l'autre et pas nous balancer tout d'un coup ..!



    Citation Envoyé par bourbe
    ce premier bout (au dessus )de code ouvre le document à imprimer et active l'imprimante à uliliser.
    déjà est tu sur que ce code fonctionne..?

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Bonjour bbil

    Citation Envoyé par bbil
    déjà est tu sur que ce code fonctionne..?

    OUI je suis quasi sur car je lance tous le temps cette macro et quand je le fait ca fait toute les opérations demandé (activer excel, ouvrir le fichier, imprimer en pdf) et ensuite ca me redonne la main pour renommer et enregister dans le repertoire que je veux (ca je veux aussi l'automatiser)

    Je ne fais pas que ecrire ces codes sans en vérifier le fonctionnement

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Bonjour bbil et aussi a tous,

    En assayant de résoudre ce dernier probléme, j'ai fait un tour sur plusieurs autres forums et aussi des forums anglais et à la lecture de ce que j'ai lu j'ai cru comprendre (Je ne suis pas informaticien à la base et je suis débutant) que c'est au niveau de pdfcreator qu'il faut définir les options de sauvegarde de de renommage.

    Voici donc un code VBA que j'ai recuperer ici:

    http://groups.google.com/group/micro...y&rnum=2&hl=enet qui traite du même probléme que le mien mais est ecris en VBA.

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    Option Explicit 
      Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long) 
     
     
      Sub PrtPDFCreator(theObject As Object) 
      ' Print to the PDFCreator printer 
      ' Needs a reference to PDFCreator.exe 
     
     
      Const theFileRoot As String = "C:\Temp\PDFs\" ' Testing (must exist) 
      Dim outName As String 
      Dim strOldPrinter As String 
     
     
      ' Add a reference to PDFCreator 
      Dim myPDFCreator As PDFCreator.clsPDFCreator 
     
     
      outName = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) & "-" _ 
              & Application.ActiveSheet.Name & "-" _ 
              & Format((Now), "HHNN-SS") & Format((Timer() * 100) Mod 100, "00") & ".PDF" 
     
     
      Set myPDFCreator = New PDFCreator.clsPDFCreator 
      With myPDFCreator 
        If .cStart("/NoProcessingAtStartup") = False Then 
          MsgBox "Can't initialize PDFCreator.", vbCritical + vbOKOnly, "PrtPDFCreator" 
          Exit Sub 
        End If 
        .cOption("UseAutosave") = 1 
        .cOption("UseAutosaveDirectory") = 1 
        .cOption("AutosaveDirectory") = theFileRoot 
        .cOption("AutosaveFilename") = outName 
        .cOption("AutosaveFormat") = 0 ' 0 = PDF 
        .cClearCache 
      End With 
     
     
      ' Perform the print action 
      strOldPrinter = ActivePrinter 
      theObject.PrintOut ActivePrinter:="PDFCreator" 
     
     
      ' Wait until the print job has entered the queue 
      Do Until myPDFCreator.cCountOfPrintjobs = 1 
        DoEvents 
        Sleep 100 
      Loop 
      Sleep 100 
      myPDFCreator.cPrinterStop = False 
     
     
      ' Wait until the PDF file shows up 
      Do Until Dir(theFileRoot & outName) <> "" 
        DoEvents 
      Loop 
     
     
      myPDFCreator.cClose 
      Set myPDFCreator = Nothing 
      Sleep 100 
      DoEvents 
      ActivePrinter = strOldPrinter 
      End Sub 
     
     
      Private Sub myPDFCreator_eError() 
      MsgBox "ERROR [" & myPDFCreator.cErrorDetail("Number") & "]: " _ 
         & myPDFCreator.cErrorDetail("Description"), vbCritical + vbOKOnly, "PrtPDFCreator" 
      End Sub 
     
     
      Sub testPDFCreator() 
      Dim mySheet As Worksheet 
     
     
      For Each mySheet In ActiveWorkbook.Sheets 
        mySheet.Activate 
        Call PrtPDFCreator(mySheet) 
      Next mySheet 
      MsgBox "Done." 
      End Sub
    Depuis ce matin j'aissaie donc de le convertir en VBS et j'y arrive pas !!!!!!!!!!!!!! pourtant toute les idées pour résoudre mon probléme y sont.

    Pouvez vous m'aider ??????????????????????

  19. #19
    Membre habitué
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Points : 186
    Points
    186
    Par défaut
    pour le point 2, rien n'est sûr mais il est possible que cela soit du au fait que des espaces sont présents dans ton nouveau chemin (Document and settings).

    Essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AutosaveDirectory = Chr(24) & "C:\Documents and Settings\user\Bureau\VBS" & Chr(34)
    qui est identique à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AutosaveDirectory = """C:\Documents and Settings\user\Bureau\VBS"""
    abertaud
    ---------

    - pas de réponse technique en PV, utilisez les forums
    - si vous trouvez seuls la solution, n'abandonnez pas votre post, mettez-le à jour pour les autres
    - le tag est parfois en voie d'extinction, participez à sa survie

  20. #20
    Membre habitué
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Points : 186
    Points
    186
    Par défaut
    Je n'ai pas la traduction de ton code en VBS, mais tu peux suivre quelques pistes :

    - en vbs, tu ne déclare pas le type de tes variable. tous les "As quelquechose" sont donc inutils
    - la fonction Sleep n'existe pas en tant que tel. Utilise plutot WScript.sleep DUREE (en ms)
    - les déclarations ne marchent pas (cf. ligne 2)
    - les portées non plus (private/public) ; supprime les
    - les "new" n'existent pas. Préfère plutot "variable = CreateObjet("xxxxx")"
    - Enfin, ActiveWorkBook.name ne marchera jamais en vbs. Il me semble que tu peux à la place faire WScript.ScriptFullName ou WScript.ScriptName, je ne sais pu lequel
    abertaud
    ---------

    - pas de réponse technique en PV, utilisez les forums
    - si vous trouvez seuls la solution, n'abandonnez pas votre post, mettez-le à jour pour les autres
    - le tag est parfois en voie d'extinction, participez à sa survie

Discussions similaires

  1. [XL-2007] sauvegarde d'une feuille excel sous format pdf
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/02/2011, 19h20
  2. Imprimer une feuille excel vers un fichier .pdf
    Par ghosty04 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/06/2009, 16h14
  3. enregistrer une feuille excel en document pdf
    Par tunizar dans le forum WinDev
    Réponses: 1
    Dernier message: 14/03/2008, 14h12
  4. Réponses: 1
    Dernier message: 15/04/2007, 20h09
  5. Ouvrir une feuille excel et mettre son contenu dans VB6
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 17/01/2006, 09h16

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