cs_Ma2004
Messages postés150Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention22 octobre 2008
-
24 oct. 2005 à 17:58
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 2011
-
27 oct. 2005 à 08:03
Salut à tous,
Bon alors j'ai regardé à peu près partout (notamment sur le forum de vbfrance !)et je n'ai pas trouvé de réponse à ma question. Ptêt que certains d'entre vous pourront m'aider (en me donnant le code ou en me disant que j'ai bien cherché ! lol)
Je voudrais pouvoir imprimer une form au centre d'une page et ajouter un titre qui n'est pas dans cette form ( un titre placé au dessus de cette form).
Si qqn a une idée et en plus rapidement alors là ceserait le bonheur pour moi !!
Merci d'avance.
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 24 oct. 2005 à 20:25
Salut
Tu n'a pas du chercher assez car
voici un code qui fonctionne
A toi de l'adapter pour mettre ton titre
Il faut etre rigoureux sur le nommage des controles
Public Sub print_form()
For Each ctrl In Me.Controls
Call print_control(printer, ctrl)
Next
printer.EndDoc
End Sub
Private Sub print_control(printer As printer, ByVal control As Object)
If (Left(control.Name, 4) = "Line") Then
printer.Line (control.X1, control.Y1)-(control.X2, control.Y2)
ElseIf (Left(control.Name, 5) = "Image") Then
'printer.Line (control.X1, control.Y1)-(control.X2, control.Y2)
Dim stdPict As New StdPicture
Set stdPict = LoadPicture(App.Path & "\veau2.jpg")
printer.PaintPicture stdPict, control.Left, control.Top, control.Width, control.Height
Else
Select Case control.Alignment
Case vbCenter
printer.CurrentX = control.Left + control.Width / 2 - printer.TextWidth(control.Caption) \ 2
Case vbLeftJustify
printer.CurrentX = control.Left
Case vbRightJustify
printer.CurrentX = control.Left + control.Width - printer.TextWidth(control.Caption)
End Select
printer.CurrentY = control.Top
printer.FontBold = control.Font.Bold
printer.Font.Name = control.Font.Name
printer.Font.Size = control.Font.Size
If (LCase(Left(control.Name, 2) "lb")) Or (Left(control.Name, 5) "Label") Then
printer.Print control.Caption
Else
MsgBox control.Name
End If
End If
End Sub
cs_Ma2004
Messages postés150Date d'inscriptionmardi 20 juillet 2004StatutMembreDernière intervention22 octobre 2008 26 oct. 2005 à 12:27
Alors d'abord merci d'avoir répondu.
Ensuite, c'est pas exactment bon (à moins que je n'aie pas très bien compris !).
En fait avec ce code, je ne peux pas imprimer une form mais seulement une picture.
Depuis l'envoi de mon message, j'ai réussi à mettre un titre et à imprimer une form mais toujours pas à la centrer. Donc ma question est toujours ouverte.
En plus avec un Visual Basic en allemand, c'est encore moins facile de trouver des solutions !!
Merci encore pour ta réponse.
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 27 oct. 2005 à 08:03
Salut
Le code perlet d'imprimer différents control, mais le triatement est different pour les ligne et les images.
Il n'imprime pas les zones de texte c'est des labels a la place.
Tous les controles sont posse sur une forme.
Les labels sont prefixe par lbl
Comme ca le design est fait a la souris.
Et il n'est pas trop complexe de centrer le tout
en mettant un marge en X et en Y