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 :

Impression PDF en VBA - Problème d'affichage pour les images [XL-MAC 2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Par défaut Impression PDF en VBA - Problème d'affichage pour les images
    Bonjour à tous,
    A partir de la macro suivante, j'exporte en PDF les signets d'un fichier, ça marche bien.
    Seulement, j'ai des images, mais elles ne sont pas intégrées dans le PDF.
    Si je fais fichier > enregistrer sous > PDF, j'ai les images.
    Via la macro, je ne les ai pas.
    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
     
    Sub SaveSignetsPDF() 'Pierre Octobre 2018
        Dim FileName$, FolderName$, Folderstring$, FilePathName$, LeParcours$
        'Set the Orientation of the sheet, seems to default to xlPortait
        'if we not use this code line. This is a bug in Mac Excel 2016
        ActiveSheet.PageSetup.Orientation = ActiveSheet.PageSetup.Orientation
     
    Dim WS_Count As Integer
             Dim I As Integer
     
             WS_Count = ActiveWorkbook.Worksheets.Count
     
             ' Début de la boucle
             For I = 1 To WS_Count
                'récupere un texte dans une cellule du signet, le texte est utilisé pour le nom du fichier
                Stagiaire = Worksheets(I).Range("A59").Value
                NO = Worksheets(I).Name
                NomFormation = "Nom de la formation - "
     
     
       FileName = NomFormation & Stagiaire & ".pdf"
       'FileName = Format(Date, "yyyymmdd") & " " & Stagiaire & ".pdf"
     
        'Make folder in the Office folder if it not exists and create the path/file name
        FolderName = "PDFSaveFolder"
        Folderstring = CreateFolderinMacOffice2016(NameFolder:=FolderName)
        FilePathName = Folderstring & Application.PathSeparator & FileName
        'Réduire les marges à 0,2
     
        Worksheets(I).PageSetup.PrintArea = "$A$1:$C$42"
        Application.PrintCommunication = False
        With Worksheets(I).PageSetup
            .LeftMargin = Application.InchesToPoints(0.25)
            .RightMargin = Application.InchesToPoints(0.25)
            .Orientation = xlPortrait
     
        End With
        Application.PrintCommunication = True
     
        'Faire une sélection avant impression
        'Range("A1:I35").Select
     
     
     
        'ExportAsFixedFormat is not working correct in Mac Excel 2016, for example:
        'expression A variable that represents a Workbook, Sheet, Chart, or Range object
        'is not working if you change ActiveWorkbook, it always save the activesheet.
        'Also the parameters are not working like in Win Excel.
        Worksheets(I).ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
        FilePathName, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False
          Next I
        MsgBox "Votre fichier PDF à été enregistré sous : " & FilePathName, , "Chemin de votre Fichier PDF"
    End Sub
     
     
     
     
    Function CreateFolderinMacOffice2016(NameFolder As String) As String
        'Function to create folder if it not exists in the Microsoft Office Folder Ron de Bruin : 8-Jan-2016
        Dim OfficeFolder$, PathToFolder$, TestStr$
        OfficeFolder = MacScript("return POSIX path of (path to desktop folder) as string")
        OfficeFolder = Replace(OfficeFolder, "/Desktop", "") & _
            "Library/Group Containers/UBF8T346G9.Office/"
        PathToFolder = OfficeFolder & NameFolder
        On Error Resume Next
        TestStr = Dir(PathToFolder, vbDirectory)
        On Error GoTo 0
        If TestStr = vbNullString Then
            MkDir PathToFolder
        End If
        CreateFolderinMacOffice2016 = PathToFolder
    End Function
    Merci pour votre aide.

  2. #2
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Par défaut
    Il s'agit d'un bug corrigé par microsoft. La mise à jour de la 16.14 vers la 16.16 a permis de corriger le problème.
    Merci à ceux qui auront pris un peu de temps pour chercher.

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

Discussions similaires

  1. VBA problème d'affichage
    Par looping0007 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/06/2013, 13h24
  2. [VBA] Problème d'affichage de Textbox
    Par Salent dans le forum Général VBA
    Réponses: 3
    Dernier message: 07/06/2013, 15h05
  3. Impression pdf et VBA
    Par tom0ne dans le forum VBA Word
    Réponses: 39
    Dernier message: 07/01/2012, 23h04
  4. Problème d'affichage pour balise anchor avec spans
    Par miro_mtl dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 17/11/2010, 20h03
  5. Impression PDF en VBA
    Par divayg dans le forum Général VBA
    Réponses: 0
    Dernier message: 27/11/2009, 13h24

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