Famille de feuilles de calcul Microsoft avec des outils pour l’analyse, le graphique et la communication des données.
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