Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

imprimer un userform

501 views
Skip to first unread message

Ben

unread,
Oct 29, 2002, 10:04:49 AM10/29/02
to

Salut a tous,

G un petit bleme, j'arrive pas a definir l'impression de mon userform.

je vous explique :

j'ai un userform sur lequel se trouve un bouton "imprimer", qui lance
l'impression de plusieurs feuilles Excel (jusqu'ici pas de probleme), et aussi
celle du Userform (avec UserForm.printform). La par contre, ca lance bien
l'impression, mais je ne trouve pas comment definir l'impression. Ca me
l'imprime en haut a gauche de la page :'( ... moi je le veux au centre!!

Merci a l'avance, je suis sur que quelqu'un sait ca!! ;)

--
Use our news server 'news.foorum.com' from anywhere.
More details at: http://nnrpinfo.go.foorum.com/

isabelle

unread,
Oct 29, 2002, 11:58:08 AM10/29/02
to
Bonjour Ben,

L’imprimante utilisée par la méthode PrintForm est déterminée par les paramètres
du Panneau de configuration du système d’exploitation. une solution possible
modifier ces paramètres et les remettre aux valeurs d'origine par Api. sur le
site de Laurent Longre http://longre.free.fr/ tu trouvera des exemples des
fonction Api, mais je n'ai jamais utilisé ce genre de fonction alors je passe la
main.

bonne travail a+
isabelle

Ben a écrit :

Michel Pierron

unread,
Oct 29, 2002, 3:19:22 PM10/29/02
to
Salut Ben;
Comme je l'ai déjà dis dans un précédent post, tu n'as aucune action sur les
paramètres de l'imprimante en utilisant PrintForm, l'objet Printer n'étant
pas disponible dans VBA. L'idée est de coller l'image de l'userform dans un
nouveau classeur au travers du presse-papiers et de détruire ce classeur
après impression.
Dans le module de ton userform, tu transpose les lignes suivantes:

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte _
, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Sub CommandButton2_Click()
' Ici ton code


PrintUserForm
End Sub

Private Sub PrintUserForm()
Dim BookName As String

Me.Repaint '* Relâche le bouton avant l'impression
keybd_event vbKeySnapshot, 0, 0&, 0&
Application.ScreenUpdating = False
Workbooks.Add
BookName = ActiveWorkbook.Name
ActiveWindow.Visible = False
Workbooks(BookName).Sheets(1).Paste
With Workbooks(BookName).Sheets(1).PageSetup
.RightFooter = Me.Caption & " 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
Application.ScreenUpdating = True
Windows(BookName).SelectedSheets.PrintOut Copies:=1
Workbooks(BookName).Close False
End Sub

MP

"Ben" <wide...@ifrance.com> a écrit dans le message de news:
20021029-1...@foorum.com...

D.Kergosien

unread,
Oct 29, 2002, 3:00:18 PM10/29/02
to
Bonsoir

une procédure (parmi d'autre concernant l'impression) pour changer
l'imprimante active trouvée sur le site de Frédéric
Sigonneau
http://perso.wanadoo.fr/frederic.sigonneau
Damien

===============================
Attribute VB_Name = "ChangerImprimante"

'changer temporairement l'imprimante par défaut pour une autre
'B Marchand, mpfe

Sub ZazaPrinter()
Dim DefPrt ' ---- éventuellement déclarer la variable DefPrt en public
Dim rep

'----- memorisation imprimante active
DefPrt = Application.ActivePrinter
rep = MsgBox(Application.ActivePrinter, vbInformation, "Avant")
' ------ dialogue pour changer l'imprimante
Application.Dialogs(xlDialogPrinterSetup).Show

rep = MsgBox(Application.ActivePrinter, vbInformation, "A partir de
Maintenant")

'--------------------------
' ici la partie de code qui doit utiliser l'imprimante choisie
'--------------------------

'----- reaffectation de l'imprimante d'origine
Application.ActivePrinter = DefPrt
rep = MsgBox(Application.ActivePrinter, vbInformation, "Comme au début")
End Sub

Ben

unread,
Oct 30, 2002, 4:52:25 AM10/30/02
to

Salut, Bon en fait je me suis peut etre mal explique mais en fait, ca n'a rien a
voir avec l'imprimante, c'est les caracteristiques de l'impression du Userform
que je ne peux pas definir. Je voudrais que le Userform (une fenetre), soit
imprime en milieu de page!

Merci quand meme a toi. :)

0 new messages