Bon ...
J'ai tout de même quelque peu conscience de ce que tout cela, sans un début, peut te paraître assez broussailleux.
Je t'ai fait donc un petit "machin" qui devrait te mettre sur la voie.
Tout le reste ne sera qu'arithmétique pure :
Sur un Form : un bouton de commande et une picturebox etr ce code
Const DC_ACTIVE = &H1
Const DC_NOTACTIVE = &H2
Const DC_ICON = &H4
Const DC_TEXT = &H8
Const BDR_SUNKENOUTER = &H2
Const BDR_RAISEDINNER = &H4
Const EDGE_ETCHED = (BDR_SUNKENOUTER Or BDR_RAISEDINNER)
Const BF_BOTTOM = &H8
Const BF_LEFT = &H1
Const BF_RIGHT = &H4
Const BF_TOP = &H2
Const BF_RECT = (BF_LEFT Or BF_TOP Or BF_RIGHT Or BF_BOTTOM)
Const DFC_BUTTON = 4
Const DFC_POPUPMENU = 5 'Only Win98/2000 !!
Const DFCS_BUTTON3STATE = &H10
Const DT_CENTER = &H1
Const DC_GRADIENT = &H20 'Only Win98/2000 !!
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
Private Declare Function SetRect Lib "user32" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function OffsetRect Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long
Private Sub Command1_Click()
Dim R As RECT, texte As String, ecarth As Integer, ecartv As Integer, largeur As Integer, hauteur As Integer
ecarth = 10
largeur = 140
hauteur = 70
ecartv = 10
Picture1.Cls
Me.ScaleMode = vbPixels
Picture1.ScaleMode = vbPixels
Picture1.Move 0, 0, 460, 280
SetRect R, 0, 0, largeur, hauteur
texte = "M. machin Pierre" & vbCrLf & "22, av chépaoù" & vbCrLf & "TATAOUINE"
DrawText Picture1.hdc, texte, Len(texte), R, DT_CENTER
plush = plush + largeur + ecarth
OffsetRect R, largeur + ecarth, 0
texte = "M. machin Pierre" & vbCrLf & "22, av chépaoù" & vbCrLf & "TATAOUINE"
DrawText Picture1.hdc, texte & Chr(10) & "&&&&", Len(texte), R, DT_CENTER
plush = plush + largeur + ecarth
OffsetRect R, largeur + ecarth, 0
texte = "M. machin Pierre" & vbCrLf & "22, av chépaoù" & vbCrLf & "TATAOUINE"
DrawText Picture1.hdc, texte & Chr(10) & "&&&&", Len(texte), R, DT_CENTER
OffsetRect R, -plush, hauteur + ecartv
plush = 0
DrawText Picture1.hdc, texte, Len(texte), R, DT_CENTER
texte = "M. machin Pierre" & vbCrLf & "22, av chépaoù" & vbCrLf & "TATAOUINE"
DrawText Picture1.hdc, texte & Chr(10) & "&&&&", Len(texte), R, DT_CENTER
plush = plush + largeur + ecarth
OffsetRect R, largeur + ecarth, 0
texte = "M. machin Pierre" & vbCrLf & "22, av chépaoù" & vbCrLf & "TATAOUINE"
DrawText Picture1.hdc, texte & Chr(10) & "&&&&", Len(texte), R, DT_CENTER
plush = plush + largeur + ecarth
OffsetRect R, largeur + ecarth, 0
texte = "M. machin Pierre" & vbCrLf & "22, av chépaoù" & vbCrLf & "TATAOUINE"
DrawText Picture1.hdc, texte & Chr(10) & "&&&&", Len(texte), R, DT_CENTER
End Sub
Lance, clique === regarde (tu vas commencer à comprendre).
Je t'ai fait deux lignes (pour te montrer le type de calcul à faire)
A toi de continuer
Une précision : l'objet Printer réagit très exactement comme une picturebox. Tu n'as donc pas de papier à gaspiller lors de tes essais. Entraîne-toi d'abord avec une picturebox
Une promesse : si tu te sens perdu en chemin ici où là, appelle au secours (je viendrai, promis). Mais ne le fais qu'après avoir toi-même bataollé (donnant donnant, comme toujours).
Allez ===>> jette-toi dans le bain.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ