Probleme d'utilisation d une macro

Fermé
mout33 - 11 oct. 2017 à 23:39
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 12 oct. 2017 à 12:26
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

A voir également:

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 12 oct. 2017 à 06:48
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
mout33 Messages postés 3 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 12 octobre 2017
12 oct. 2017 à 08:58
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > mout33 Messages postés 3 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 12 octobre 2017
12 oct. 2017 à 10:34
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
mout33 Messages postés 3 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 12 octobre 2017
12 oct. 2017 à 11:25
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > mout33 Messages postés 3 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 12 octobre 2017
12 oct. 2017 à 12:26
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