Impression pdf

bonjour le Forum

Bonjour à toutes et à tous

je cherche à imprimer des feuilles en pdf, j'ai un code qui fonctionne à ceci prés qu'il m'imprime toutes les feuilles et en fait je souhaite qu'il m'imprime toutes les feuilles sauf 2 qui sont la première et la dernière

ces deux feuilles sont nommées pour le première "procedure" et la derniere "oriclef"

voici le code

Sub pdf()

Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")

NomExcel = ThisWorkbook.Name

NomPdf = Left(NomExcel, Len(NomExcel) - 4) & ".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") = ThisWorkbook.Path

.cOption("AutosaveFilename") = Application.InputBox("INDIQUEZ LE NOM DE SAUVEGARDE ", "Choix du nom", "pesée alpage-" & Format(Date, "yyyymmdd"), , , , , 2)

.cOption("AutosaveFormat") = 0

.cClearCache

End With

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

End Sub

merci de votre aide toujours precieuse

bonjour le forum

après a force de chercher j'ai trouvé, la persévérance a payé , j'ai eu une étincelle ce matin, ce n'est peut être pas très orthodoxe mais ça marche

je masque les feuilles à ne pas imprimer en début de code et je les affiche en fin de code

je sais les puristes trouverons sans doute cela plus que moyen comme solution mais vu mon niveau je m'en contenterai

je met donc le code ci dessous au cas ou quelqu'un aurait le même souci

bonne journée

Sub Pdf()

Worksheets("procedure").Visible = False

Worksheets("oriclef").Visible = False

Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")

NomExcel = ThisWorkbook.Name

NomPdf = Left(NomExcel, Len(NomExcel) - 4) & ".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") = ThisWorkbook.Path

.cOption("AutosaveFilename") = Application.InputBox("INDIQUEZ LE NOM DE SAUVEGARDE ", "Choix du nom", "pesée alpage-" & Format(Date, "yyyymmdd"), , , , , 2)

.cOption("AutosaveFormat") = 0

.cClearCache

End With

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

Worksheets("oriclef").Visible = True

Worksheets("procedure").Visible = True

End Sub

Bonjour Francois73,

C'est bien, il faut garder cet état d'esprit de persévérance, ça permet d'avancer ! Les chemins à suivre pour arriver à une solution sont multiples !

Pour ton souci, il faut savoir que le recours à une imprimante PDF tierce n'est plus obligatoire puisqu'Excel intègre cette fonction depuis la version 2007.

Dans ton cas, je te propose ce code qui va sélectionner les onglets nécessaires et imprimer en PDF. Je te laisse adapter le nom du répertoire et du fichier :

Sub imprimePDF()

    Dim tbl()
    Dim sht As Long, i As Long
    Dim repertoire As String, fichier As String

    For sht = 1 To Sheets.Count 'on boucle sur toutes les feuilles
        If Sheets(sht).Name <> "procedure" And Sheets(sht).Name <> "oriclef" Then
            'on crée un tableau qui va contenir les onglets à imprimer
            ReDim Preserve tbl(i)
            tbl(i) = Sheets(sht).Name
            i = i + 1
        End If
    Next sht

    Sheets(tbl).Select 'on ne sélectionne que les onglets voulus

    repertoire = ThisWorkbook.Path & "\" 'répertoire à adapter

    fichier = "classeur1.pdf" 'nom du fichier à adapter

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                repertoire & fichier, Quality:=xlQualityStandard, _
                IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
                True

End Sub
Rechercher des sujets similaires à "impression pdf"