Partager via

userform sous pdf

Anonyme
2012-11-20T13:09:56+00:00

Bonjour

Comment, en VBA, obtenir mon formulaire en fichier pdf ?

Actuellement, je suis obligé de passer par une impression d'écran, ce qui n'est pas vraiment top.

Merci d'avance.

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

Anonyme
2012-11-22T17:11:17+00:00

Bonjour,

Voici un fichier exemple :  http://cjoint.com/?BKwseKTtHLg

Dans le code du bouton du formulaire, tu dois définir 2 variables,
le chemin et le nom du fichier où doit se créer le fichier PDF.

Voici le code du module standard :

'Déclaration des API dans le haut d'un module standard
Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
       ByVal dwExtraInfo As Long)
Declare Function OpenClipboard Lib "user32" _
(ByVal hwnd As Long) As Long
Declare Function EmptyClipboard Lib "user32" () As Long
Declare Function CloseClipboard Lib "user32" () As Long

'-------------------------------------
Sub Afficher_formulaire()
'Tu attaches cette procédure à un bouton dans la
'feuille pour ouvrir le formulaire
UserForm1.Show 0
End Sub
'-------------------------------------
Sub Vider_Presse_Papier()
OpenClipboard 0
EmptyClipboard
CloseClipboard
End Sub
'-------------------------------------
 Procédure située dans le formulaire : Tu peux adapter la mise
en page comme tu le désires...
'-------------------------------------
Private Sub CmdPrintMe_Click()
Dim Chemin As String, NomFichier As String
Dim Wk As Workbook, Sh As Worksheet

'*********************Variables à définir**********************
Chemin = "C:\Users\MichD\Documents"
NomFichier = "MichD.pdf"
'**************************************************************

Call Vider_Presse_Papier
Me.Repaint
keybd_event vbKeySnapshot, 1, 0&, 0&
'Au besoin, on peut ajouter une seconde de plus...
'selon la grosseur du formulaire et de la
'puissance du CPU de l'ordinateur
Application.Wait Now + TimeValue("0:00:01")

Application.ScreenUpdating = False
Set Wk = Workbooks.Add(-4167)
Set Sh = Wk.Sheets(1)

With Sh    .Activate    .Range("a1").Select    .Paste    .Application.Goto .Range("A1")    With .PageSetup        .CenterFooter = Me.Caption        .RightFooter = " Le &D Page &P/&N"        .PrintGridlines = False        .CenterHorizontally = True        .CenterVertically = True        .Orientation = xlPortrait     '* Vertical        '.Orientation = xlLandscape   '* Horizontal        .PaperSize = xlPaperA4        .Zoom = 100   '* Mettre en remarque si impression ajustée        ' * Ajuste l'impression (largeur & hauteur)        '.Zoom = False        '.FitToPagesWide = 1        '.FitToPagesTall = 1    End With    ActiveWindow.DisplayGridlines = False    .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _        Chemin & NomFichier, Quality:=xlQualityStandard, _        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _        True    ActiveWindow.DisplayGridlines = True End With Application.ScreenUpdating = False Wk.Close False End Sub '-------------------------------------  MichD

"ArsèneLUPINFD" a écrit dans le message de groupe de discussion : ******@communitybridge2.codeplex.com.excel...

Bonjour

Comment, en VBA, obtenir mon formulaire en fichier pdf ?

Actuellement, je suis obligé de passer par une impression d'écran, ce qui n'est pas vraiment top.

Merci d'avance.


http://answers.microsoft.com/message/67ca349c-0791-4de0-b876-95c7455c0900
Meta tags: office_2010; excel; windows_xp

Tue, 20 Nov 2012 13:09:56  +0000: CreateMessage  ArsèneLUPINFD

Cette réponse a-t-elle été utile ?

0 commentaires Aucun commentaire

3 réponses supplémentaires

  1. Anonyme
    2012-11-22T18:19:29+00:00

    Évidemment, cela est valide seulement pour la version Excel 2007 et 2010.

    MichD

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2012-11-22T09:44:28+00:00

    Bonjour,

    Dans windows Parametres Imprimantes

    Mettre provisoirement  ton outil de création pdf comme imprimante par défaut

    Exemple PDFCreator

    Puis dans le code du userform

    ''''''''''''''''''

    Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

    UserForm1.PrintForm

    End Sub

    '''''''''''''''''''''''

    '--

    LSteph

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2012-11-21T18:14:52+00:00

    Bonjour Arséne,

    Essayez de creuser dans cette direction

    DoCmd.OutputTo acOuputReport, "Etat1",

     acFormatPDF, "nomdu fichier.PDF", True

    A très bientôt

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire