Impression avec VB6

cs_noe Messages postés 38 Date d'inscription mardi 28 mai 2002 Statut Membre Dernière intervention 24 décembre 2003 - 6 nov. 2003 à 14:59
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 - 7 nov. 2003 à 04:03
Bonjour a tous

comment aligner a droite des chiffres comme dans Excel

j'utilise une imprimant a jet d'endre

et le code ci_dessous

Private Sub Imprimer()

Printer.PrintQuality = 60
Printer.Orientation = vbPRORPortrait
Printer.FontName = "Arial"
Printer.FontSize = 10
Printer.Print Page_Maj_Parametre.Nom & " " & Page_Maj_Parametre.Code_Postal & " " & Page_Maj_Parametre.Ville
Printer.Print ""
Printer.Print ""
Printer.Print "Etat physique de la caisse Edition du " & Date
Printer.Print ""
Printer.Print ""
Printer.CurrentY = 1200
Printer.CurrentX = 300
Printer.Print "NOMBRE"

Printer.CurrentY = 1200
Printer.CurrentX = 2000
Printer.Print "DESIGNATION"

Printer.CurrentY = 1200
Printer.CurrentX = 5000
Printer.Print "MONTANT"

Printer.CurrentY = 1700
Printer.CurrentX = 550
If Nbre500.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Nbre500.Text)

Printer.CurrentY = 1700
Printer.CurrentX = 2000
Printer.Print "Billets de 500 €"

Printer.CurrentY = 1700
Printer.CurrentX = 5200
If Montant500.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Format(Montant500.Text, "##,##0.00 €"))

Printer.CurrentY = 2000
Printer.CurrentX = 550
If Nbre200.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Nbre200.Text)

Printer.CurrentY = 2000
Printer.CurrentX = 2000
Printer.Print "Billets de 200 €"

Printer.CurrentY = 2000
Printer.CurrentX = 5200
If Montant200.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Format(Montant200.Text, "##,##0.00 €"))

Printer.CurrentY = 2300
Printer.CurrentX = 550
If Nbre100.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Nbre100.Text)

Printer.CurrentY = 2300
Printer.CurrentX = 2000
Printer.Print "Billets de 100 €"

Printer.CurrentY = 2300
Printer.CurrentX = 5200
If Montant100.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Format(Montant100.Text, "##,##0.00 €"))

Printer.CurrentY = 2600
Printer.CurrentX = 550
If Nbre50.Text = 0 Then Printer.Print "" Else Printer.Print ; CStr(Nbre50.Text)

Printer.CurrentY = 2600
Printer.CurrentX = 2000
Printer.Print "Billets de 50 €"

Printer.CurrentY = 2600
Printer.CurrentX = 5200
If Montant50.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Format(Montant50.Text, "##,##0.00 €"))

Printer.CurrentY = 2900
Printer.CurrentX = 550
If Nbre20.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Nbre20.Text)

Printer.CurrentY = 2900
Printer.CurrentX = 2000
Printer.Print "Billets de 20 €"

Printer.CurrentY = 2900
Printer.CurrentX = 5200
If Montant20.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Format(Montant20.Text, "##,##0.00 €"))

Printer.CurrentY = 3200
Printer.CurrentX = 550
If Nbre10.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Nbre10.Text)

Printer.CurrentY = 3200
Printer.CurrentX = 2000
Printer.Print "Billets de 10 €"

Printer.CurrentY = 3200
Printer.CurrentX = 5200
If Montant10.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Format(Montant10.Text, "##,##0.00 €"))

Printer.CurrentY = 3500
Printer.CurrentX = 550
If Nbre5.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Nbre5.Text)

Printer.CurrentY = 3500
Printer.CurrentX = 2000
Printer.Print "Billets de 5 €"

Printer.CurrentY = 3500
Printer.CurrentX = 5200
If Montant5.Text = 0 Then Printer.Print "" Else Printer.Print ; CStr(Format(Montant5.Text, "##,##0.00 €"))

Printer.CurrentY = 3800
Printer.CurrentX = 550
If Nbre2.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Nbre2.Text)

Printer.CurrentY = 3800
Printer.CurrentX = 2000
Printer.Print "Pièces de 2 €"

Printer.CurrentY = 3800
Printer.CurrentX = 5200
If Montant2.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Format(Montant2.Text, "##,##0.00 €"))

Printer.CurrentY = 4100
Printer.CurrentX = 550
If Nbre1.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Nbre1.Text)

Printer.CurrentY = 4100
Printer.CurrentX = 2000
Printer.Print "Pièces de 1 €"

Printer.CurrentY = 4100
Printer.CurrentX = 5200
If Montant1.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Format(Montant1.Text, "##,##0.00 €"))

Printer.CurrentY = 4400
Printer.CurrentX = 550
If Nbre050.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Nbre050.Text)

Printer.CurrentY = 4400
Printer.CurrentX = 2000
Printer.Print "Pièces de 0,50 €"

Printer.CurrentY = 4400
Printer.CurrentX = 5200
If Montant050.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Format(Montant050.Text, "##,##0.00 €"))

Printer.CurrentY = 4700
Printer.CurrentX = 550
If Nbre020.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Nbre020.Text)

Printer.CurrentY = 4700
Printer.CurrentX = 2000
Printer.Print "Pièces de 0,20 €"

Printer.CurrentY = 4700
Printer.CurrentX = 5200
If Montant020.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Format(Montant020.Text, "##,##0.00 €"))

Printer.CurrentY = 5000
Printer.CurrentX = 550
If Nbre010.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Nbre010.Text)

Printer.CurrentY = 5000
Printer.CurrentX = 2000
Printer.Print "Pièces de 0,10 €"

Printer.CurrentY = 5000
Printer.CurrentX = 5200
If Montant010.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Format(Montant010.Text, "##,##0.00 €"))

Printer.CurrentY = 5300
Printer.CurrentX = 550
If Nbre005.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Nbre005.Text)

Printer.CurrentY = 5300
Printer.CurrentX = 2000
Printer.Print "Pièces de 0,05 €"

Printer.CurrentY = 5300
Printer.CurrentX = 5200
If Montant005.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Format(Montant005.Text, "##,##0.00 €"))

Printer.CurrentY = 5600
Printer.CurrentX = 550
If Nbre002.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Nbre002.Text)

Printer.CurrentY = 5600
Printer.CurrentX = 2000
Printer.Print "Pièces de 0,02 €"

Printer.CurrentY = 5600
Printer.CurrentX = 5200
If Montant002.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Format(Montant002.Text, "##,##0.00 €"))

Printer.CurrentY = 5900
Printer.CurrentX = 550
If Nbre001.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Nbre001.Text)

Printer.CurrentY = 5900
Printer.CurrentX = 2000
Printer.Print "Pièces de 0,01 €"

Printer.CurrentY = 5900
Printer.CurrentX = 5200
If Montant001.Text = 0 Then Printer.Print "" Else Printer.Print CStr(Format(Montant001.Text, "##,##0.00 €"))

Printer.CurrentY = 6500
Printer.CurrentX = 3500
Printer.Print "TOTAL"

Printer.CurrentY = 6500
Printer.CurrentX = 5200
Printer.Print CStr(Format(TotalCaisse.Text, "##,##0.00 €"))

Printer.EndDoc

End Sub

merci pour vos réponses et bonne prog a tous

@+

4 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 nov. 2003 à 15:17
Il faudrais pour cela utiliser quelque API, plutot que Print....
mais c'est tout a fait possible...

regardes ce que tu trouves sur DrawText

DT_RIGHT

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
6 nov. 2003 à 23:29
Bonsoir

Une solution avec le dernier paragraphe de ton code :

Printer.CurrentY = 6500
Printer.CurrentX = 3500
Printer.Print "TOTAL"
A_droite = 6500 + Printer.TextWidth("TOTAL"
A_Ecrire = CStr(Format(TotalCaisse.Text, "##,##0.00 ?"))
Printer.CurrentX = A_Droite - Printer.TextWidth(A_Ecrire)

Printer.CurrentY = 6500
Printer.Print CStr(Format(TotalCaisse.Text, "##,##0.00 ?"))

Et le "?" sera en-dessous du "L" de "TOTAL"

A répéter bien sûr pour toutes les impressions de nombres.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 nov. 2003 à 23:51
Sinon, tu peux utiliser la fonction TextWidth de l'objet Printer. Elle renvoie la longueur du texte spécifié, en pixels.....

il ne te restera alors qu'a effectuer une soustraction, pour savoir ou placer l'origine de ton texte...

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
7 nov. 2003 à 04:03
... il est entendu que dans mon précédent message, le point d'interrogation a remplacé le symbole Euro qui n'est pas passé ...
0
Rejoignez-nous