Probleme d'utilisation d une macro

mout33 -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
voila une macro parfaite pour ce que je souhaite faire .
A savoir crées un pdf d un fichier excel en sélectionnant seulement certaine feuille de mon classeur hors ce code que j ai déjà modifier pour mes besoin ne me sort en pdf que la feuille active (mon sommaire donc je m'en fiche) après énormément de test je ne parviens pas a intègre les feuilles a mettre en PDF.
Merci de votre aide en plus c'est plutôt urgent;(

Sub pdfOK()
'www.contextures.com
'for Excel 2010 and later
   
Dim wsA As Worksheet
Dim wbA As Workbook
Dim strTime As String
Dim strName As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim myFile As Variant
On Error GoTo errHandler

Set wbA = ActiveWorkbook
Set wsA = ActiveSheet
strTime = Format(Now(), "yyyymmdd\_hhmm")

'obtenir le dossier du classeur actif, si sauvegardé
strPath = wbA.Path
If strPath = "" Then
  strPath = Application.DefaultFilePath
End If
strPath = strPath & "\"

'remplacer les espaces et les points dans le nom de la feuille
strName = Replace(wsA.Name, " ", "")
strName = Replace(strName, ".", "_")

'créer un nom par défaut pour le fichier de sauvegarde
strFile = Range("I6") & Range("I7") & Range("I8") & ".pdf"
strPathFile = strPath & strFile

'l'utilisation peut entrer le nom et
'sélectionnez le dossier pour le fichier
myFile = Application.GetSaveAsFilename _
    (InitialFileName:=strPathFile, _
        FileFilter:="PDF Files (*.pdf), *.pdf", _
        Title:="Select Folder and FileName to save")

'export to PDF if a folder was selected
If myFile <> "False" Then
    wsA.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=myFile, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    'confirmation message with file info
    MsgBox "PDF file has been created: " _
      & vbCrLf _
      & myFile
End If

exitHandler:
    Exit Sub
errHandler:
    MsgBox "Could not create PDF file"
    Resume exitHandler
End Sub

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    exemple de code export PDF d'onglets selectionnes:

    'export table onglets
    Sub Tst()
    Dim Ar(2) As String
     
        Ar(0) = Feuil1.Name
        Ar(1) = Feuil2.Name
        Ar(2) = Feuil3.Name
        Application.ScreenUpdating = False
        Sheets(Ar).Select
     
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & "Essai.pdf" _
            , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
            :=False, OpenAfterPublish:=False
     
        Sheets("Feuil1").Select
        Application.ScreenUpdating = True
    End Sub
    0
    1. mout33 Messages postés 4 Statut Membre
       
      Bonjour merci de votre réponse je n’avais pas exploiter j’aurais souhaité partir du code que j’ai fournit est déjà modifié un point d’avoir le duo composé automatiquement avec des valeurs de cellules qui sont au je n’arrive donc pas à rajouter votre code au mien je débute en vba est donc je suis encore dans la recherche une solution
      0
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > mout33 Messages postés 4 Statut Membre
         
        Re,

        devrait aller

        Sub pdf()
        Dim wsA As Worksheet
        Dim wbA As Workbook
        Dim strTime As String
        Dim strName As String
        Dim strPath As String
        Dim strFile As String
        Dim strPathFile As String
        Dim myFile As Variant
        
        On Error GoTo errHandler
        Set wbA = ActiveWorkbook
        Set wsA = ActiveSheet
        strTime = Format(Now(), "yyyymmdd\_hhmm")
        
        'obtenir le dossier du classeur actif, si sauvegardé
        strPath = wbA.Path
        If strPath = "" Then
          strPath = Application.DefaultFilePath
        End If
        strPath = strPath & "\"
        
        'remplacer les espaces et les points dans le nom de la feuille
        strName = Replace(wsA.Name, " ", "")
        strName = Replace(strName, ".", "_")
        
        'créer un nom par défaut pour le fichier de sauvegarde
        strFile = Range("I6") & Range("I7") & Range("I8") & ".pdf"
        strPathFile = strPath & strFile
        
        'l'utilisation peut entrer le nom et
        'sélectionnez le dossier pour le fichier
        myFile = Application.GetSaveAsFilename _
            (InitialFileName:=strPathFile, _
                FileFilter:="PDF Files (*.pdf), *.pdf", _
                Title:="Select Folder and FileName to save")
        
        'export to PDF if a folder was selected
        If myFile <> "False" Then
                Dim Ar(2) As String     ' a dimensionner fonction du nombre de feuille
                'Ar(0) a Ar(x) doit contenir le nom des onglets a selectionner
                Ar(0) = Feuil1.Name
                Ar(1) = Feuil2.Name
                Ar(2) = Feuil3.Name
                
                Application.ScreenUpdating = False
                Sheets(Ar).Select
         
                ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=myFile _
                , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
                :=False, OpenAfterPublish:=False
         
                Sheets("Feuil1").Select
            'confirmation message with file info
            MsgBox "PDF file has been created: " _
              & vbCrLf _
              & myFile
        End If
        
            Application.ScreenUpdating = True
            Exit Sub
        errHandler:
            MsgBox "Could not create PDF file"
            Resume exitHandler
            Application.ScreenUpdating = True
        End Sub
        0
    2. mout33 Messages postés 4 Statut Membre
       
      Merci de se code mais je souhaiterais aller plus loin dans ma demande car en l'utilisant je m'aperçois que je suis pas viable.

      je souhaite qu'une fenêtre de cochage me demande quelle onglets je souhaite intégrer dans PDF
      hors ce code il est vrais fige que certaines feuilles et ayant un fichier avec une utilisation de différentes personnes et celle -ci n'ont pas accès à tous les onglets est donc cela ne crée une erreur de systématiquement dans ma première idée
      il faudrait donc que la fenêtre de coche ne propose seulement les anglais actifs du classeur je vais loin dans ma demande je le sais merci de votre aide.
      0
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > mout33 Messages postés 4 Statut Membre
         
        Re,
        je souhaiterais aller plus loin dans ma demande
        je souhaite qu'une fenêtre de cochage me demande

        Ben oui, mais nous ne sommes pas devins. Finalisez votre demande et nous verrons ce qu'il y a a faire
        0