Impression avec VB6

Signaler
Messages postés
38
Date d'inscription
mardi 28 mai 2002
Statut
Membre
Dernière intervention
24 décembre 2003
-
Messages postés
1858
Date d'inscription
samedi 29 juin 2002
Statut
Membre
Dernière intervention
17 octobre 2013
-
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

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
64
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.......... ;)
Messages postés
1858
Date d'inscription
samedi 29 juin 2002
Statut
Membre
Dernière intervention
17 octobre 2013
10
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.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
64
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.......... ;)
Messages postés
1858
Date d'inscription
samedi 29 juin 2002
Statut
Membre
Dernière intervention
17 octobre 2013
10
... il est entendu que dans mon précédent message, le point d'interrogation a remplacé le symbole Euro qui n'est pas passé ...