Bonjour a tous,
Mon probleme est que j'ai ecrit un code pour imprimer mes etats, mais j'arrive pas a faire en sorte que les valeurs numerique soient cadrees a droite de leur zone d'impression.
Que faire ???
Bonjour a tous,
Mon probleme est que j'ai ecrit un code pour imprimer mes etats, mais j'arrive pas a faire en sorte que les valeurs numerique soient cadrees a droite de leur zone d'impression.
Que faire ???
Salut,
Si tu imprimes avec Printer, pour aligner tes chiffres à droite, calcule la position de chaque nombre comme ceci :
Printer.CurrentX = PositionX - Printer.TextWidth(CStr(Nombre))
Printer.Print CStr(Nombre)
PositionX correspond à la position que tu auras choisie pour aligner ta colonne de nombres.
CStr convient pour des entiers mais pour des nombres décimaux, Format sera préférable.
A+
HCath
Salut,
Tout d'abord merci pour la reponse.
J'etais pas sur place ces jours derniers.
J'ai essaye la proposition suivante qui m'a ete faite :
Printer.CurrentX = PositionX - Printer.TextWidth(CStr(Nombre))
Printer.Print CStr(Nombre)
j'ai remplacé PositionX par 50 car c'est a partir du 50eme caractere de mon etat que j'aligne les colonnes de nombres.
Le resultat c'est un decallage au debut de la ligne suivante des dits nombres. ???
cela ne marche pas en fonction du nombre de caractères.
PositionX est en unités de l'imprimante que tu peux connaitre par
printer.scalemode
Salut,
L'objet Printer travaille par défaut en twips. Donc, il te faudra une PositionX bien supérieure à 50 pour aligner tes nombres, Essaie avec des valeurs de 3000, 6000 ou 9000 pour voir ce que ça donne.
A+
HCath
Salut,
Je crois que je vais vous donner le code qui me pose probleme.
Je veut que "Montant1" et "Montant2" soient alignes a droite pour les differentes lignes de l'etat comme l'exemple suivant :Printer.Print Tab(2); Matricule; Tab(7); Prenom(s);
Tab(19);Nom;Tab(35); Montant1; Tab(47); Montant2;
....121234.......... 45756
......42000.........132758
12457713............ 1245
ce que ne permet pas le code ci-dessus.
Salut,
Ta méthode ne peut fonctionner qu'avec des caractères fixes comme Courier.
Avec les polices TrueType, ça ne marchera jamais.
Donc, voici ce que tu dois faire :
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Printer.ScaleMode = vbTwips Printer.CurrentY = 600 Printer.CurrentX = 120 Printer.Print Matricule; " " ; Prenom(s); " "; Nom; Printer.CurrentX = 6000 - Printer.TextWidth(CStr(Montant1)) Printer.Print CStr(Montant1); Printer.CurrentX = 9000 - Printer.TextWidth(CStr(Montant2)) Printer.Print CStr(Montant2)
HCath
Salut,
Je tiens a vous remercier tous et tres sincerement pour votre aide precieuse.
A bientot !!!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager