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

Macros et VBA Excel Discussion :

Changer de workbook pour impression en pdf [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2011
    Messages : 163
    Points : 89
    Points
    89
    Par défaut Changer de workbook pour impression en pdf
    Bonjour,

    J'ai un petit problème qui me semble simple à résoudre mais je ne trouve pas la solution.

    J'ai un fichier excel (test2.xlsm) qui lance un macro vba. Cette macro ouvre un autre workbook (model.xlsm) ou on effectue des calculs. Je souhaite à la fin convertir les feuilles (model.xlsm) en pdf. Mon souci c'est qu'il m'imprime les pages de l'autre workbook ( test2.xlsm)

    Voila je vous lesse mon code, je pense que le problème est sur la ligne que j'ai indiqué en rouge, en espérant que quelqu’un pourra m'aider :

    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
    Private Sub ToPdf(ledir)
    
        timestamp = Format(Now, "dd-mm-yyyy-hhnnssms")
      
        
        Sheets("Feuil1").Visible = False
        Sheets("BDCF").Visible = False
     
        Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
        NomPdf = "BDCF" & timestamp & ".pdf"
        
            With pdfjob
                If .cstart("/NoProcessingAtStartup") = False Then
                    MsgBox "Can't initialize PDFCreator.", vbCritical + vbOKOnly, "PrtPDFCreator"
                    Exit Sub
                End If
                .cOption("UseAutosave") = 1
                .cOption("UseAutisaveDirectory") = 1
                .cOption("AutosaveDirectory") = ledir
                .cOption("AutosaveFilename") = NomPdf
                .cOption("AutosaveFormat") = 0
                .cClearCache
            End With
            
        ActiveWindow.View = xlPageBreakPreview
        ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
        ActiveWindow.View = xlNormalView
        
        ThisWorkbook.PrintOut copies:=1, ActivePrinter:="PDFCreator"
        
        Do Until pdfjob.cCountOfPrintjobs = 1
            DoEvents
        Loop
        
        pdfjob.cPrinterStop = False
        
        Do Until pdfjob.cCountOfPrintjobs = 0
            DoEvents
        Loop
        
        With pdfjob
            .cDefaultprinter = DefaultPrinter
            .cClearCache
            .cClose
        End With
        
        Set pdfjob = Nothing
        
        Sheets("Feuil1").Visible = True
        Sheets("BDCF").Visible = True
    
    End Sub
    Merci

  2. #2
    Membre chevronné Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Points : 2 131
    Points
    2 131
    Par défaut
    ThisWorkbook correspond effectivement au classeur qui execute la macro. Il faut le faire sur le workbook que tu veux imprimer.
    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("model.xlsm").PrintOut copies:=1, ActivePrinter:="PDFCreator"
    Mais ce qui serait plus propre, c'est que le classeur soit référencé dans une variable, vu que tu as déjà travaillé dessus avant.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2011
    Messages : 163
    Points : 89
    Points
    89
    Par défaut
    Ah voila merci beaucoup.
    Il me manquai que la syntaxe.

    Merci beaucoup pour ton aide.

    Cordialement

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

Discussions similaires

  1. Script pour impression pdf a partir d'excel
    Par lorifan dans le forum VBScript
    Réponses: 3
    Dernier message: 18/06/2008, 16h05
  2. Visualisation pour impression d'un pdf
    Par Virg62 dans le forum Documents
    Réponses: 2
    Dernier message: 18/06/2008, 12h33
  3. Modifier propriété imprimante pour impression PDF
    Par seb.49 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 28/01/2008, 21h27
  4. Changer Nom du Fichier lors de l'impression en PDF
    Par enfin dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/10/2007, 19h10
  5. Réponses: 6
    Dernier message: 28/06/2007, 11h48

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