Imprimer une facture avec vb 6
Fermé
aloulo2
Messages postés
28
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
7 mai 2010
-
3 févr. 2010 à 12:45
aloulo2 Messages postés 28 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 7 mai 2010 - 25 févr. 2010 à 02:18
aloulo2 Messages postés 28 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 7 mai 2010 - 25 févr. 2010 à 02:18
A voir également:
- Imprimer une facture avec vb 6
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Gta 6 prix - Accueil - Jeu vidéo
- Facture instagram ✓ - Forum Instagram
- Imprimer tableau excel sur une page - Guide
5 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
3 févr. 2010 à 13:46
3 févr. 2010 à 13:46
Bonjour,
Deux solutions,
Tu ne met pas EndDoc après avoir imprimer l'entête, commande qui termine la page.
Ou tu saisi tout le document (facture) et ensuite tu l'imprime.
A+
Deux solutions,
Tu ne met pas EndDoc après avoir imprimer l'entête, commande qui termine la page.
Ou tu saisi tout le document (facture) et ensuite tu l'imprime.
A+
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
4 févr. 2010 à 12:17
4 févr. 2010 à 12:17
Si je comprend bien !!
Tu envoi l'entête à l'imprimante.. ensuite ont clic sur des boutons et il faut ajouter des lignes ? et cela plusieur fois ?
Si c'est comme cela tu a aussi 2 solutions,
Sur la forme mettre un textbox qui recevra les dommnées à la place de l'imprimante, quand le mise en page est terminée tu imprime le texte.
Ou bien tu envoi à l'imprimante au fur et à mesure de la sélection, sans EndDoc, t'inqiète pas, l'imprimante ne démarre pas mais c'est dans son tampon, ça ne sortira qu'avec le EndDoc ou suivant la configuration, lorsqu'une page est remplie.
A+
Tu envoi l'entête à l'imprimante.. ensuite ont clic sur des boutons et il faut ajouter des lignes ? et cela plusieur fois ?
Si c'est comme cela tu a aussi 2 solutions,
Sur la forme mettre un textbox qui recevra les dommnées à la place de l'imprimante, quand le mise en page est terminée tu imprime le texte.
Ou bien tu envoi à l'imprimante au fur et à mesure de la sélection, sans EndDoc, t'inqiète pas, l'imprimante ne démarre pas mais c'est dans son tampon, ça ne sortira qu'avec le EndDoc ou suivant la configuration, lorsqu'une page est remplie.
A+
Avant tous je vous remercie énormément pour vos réponses à mes problèmes
J’ai pu faire un bouton(Command2_Click()) qui ajoute du texte dans le tampon et j’ai mis le EndDoc dans un autre bouton(Command1_Click()), le problème c’est que je veux que a chaque clic sur bouton(Command2_Click()) il y’aura du texte qui s’ajoute dans le tampon mai je donne a Printer.CurrentY une valeur qui change(je l’incrémente par une constante) a chaque exécution de (Command2_Click()) pour que la ligne suivent se place ou dessous de la précédant
Commet faire ?
Voici mon code :
Private Sub Command2_Click()
yh = yh + cyh
Printer.CurrentX = 1
Printer.CurrentY = yh
Printer.ScaleMode = 7
Printer.FontName = "Forte"
Printer.FontSize = 10
Printer.Print "_________________________________________________________________________________________________________"
End Sub
Private Sub Command1_Click()
Printer.EndDoc
End Sub
J’ai pu faire un bouton(Command2_Click()) qui ajoute du texte dans le tampon et j’ai mis le EndDoc dans un autre bouton(Command1_Click()), le problème c’est que je veux que a chaque clic sur bouton(Command2_Click()) il y’aura du texte qui s’ajoute dans le tampon mai je donne a Printer.CurrentY une valeur qui change(je l’incrémente par une constante) a chaque exécution de (Command2_Click()) pour que la ligne suivent se place ou dessous de la précédant
Commet faire ?
Voici mon code :
Private Sub Command2_Click()
yh = yh + cyh
Printer.CurrentX = 1
Printer.CurrentY = yh
Printer.ScaleMode = 7
Printer.FontName = "Forte"
Printer.FontSize = 10
Printer.Print "_________________________________________________________________________________________________________"
End Sub
Private Sub Command1_Click()
Printer.EndDoc
End Sub
Aligator_427
Messages postés
54
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
21 février 2010
21
5 févr. 2010 à 11:30
5 févr. 2010 à 11:30
Je ne sais pas si j'ai bien tout compris. Ce que tu dis doit fonctionner.
Ton code me semble correct, à part qu'il ne gère pas le passage d'une page à l'autre (prévoir également, si nécessaire, une gestion de la longueur de la chaine de caractère à ajouter)
D'abord, il faut stocker le currentY dans une variable; dans les déclarations générales:
Dim prCurrentY As Single
Private Sub Command2_Click()
dim strPrint as String
strPrint=InputBox("String à imprimer")
Printer.ScaleMode = 7 'centimetres
Printer.CurrentX = 1
prCurrentY=prCurrentY + cyh 'où cyh représente ta constante d'intervalle de ligne
If Printer.CurrentY<=20 then
Printer.CurrentY = prCurrentY
Else
Printer.NewPage
Printer.CurrentY=1
End If
Printer.FontName = "Forte"
Printer.FontSize = 10
Printer.Print strPrint
End Sub
Private Sub Command1_Click()
Printer.EndDoc
End Sub
Ton code me semble correct, à part qu'il ne gère pas le passage d'une page à l'autre (prévoir également, si nécessaire, une gestion de la longueur de la chaine de caractère à ajouter)
D'abord, il faut stocker le currentY dans une variable; dans les déclarations générales:
Dim prCurrentY As Single
Private Sub Command2_Click()
dim strPrint as String
strPrint=InputBox("String à imprimer")
Printer.ScaleMode = 7 'centimetres
Printer.CurrentX = 1
prCurrentY=prCurrentY + cyh 'où cyh représente ta constante d'intervalle de ligne
If Printer.CurrentY<=20 then
Printer.CurrentY = prCurrentY
Else
Printer.NewPage
Printer.CurrentY=1
End If
Printer.FontName = "Forte"
Printer.FontSize = 10
Printer.Print strPrint
End Sub
Private Sub Command1_Click()
Printer.EndDoc
End Sub
aloulo2
Messages postés
28
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
7 mai 2010
5 févr. 2010 à 13:38
5 févr. 2010 à 13:38
Votre solution et idéal sauf que le prCurrentY ne doit pas commencer par (0) il doit prendre une valeur au dépare (4.6) « pour laisser de la place pour l’en-tête »
Aligator_427
Messages postés
54
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
21 février 2010
21
5 févr. 2010 à 14:31
5 févr. 2010 à 14:31
il suffit d'initialiser la variable dans le form_load
Private Sub Form_Load()
prCurrentY=4.6
End Sub
Private Sub Form_Load()
prCurrentY=4.6
End Sub
aloulo2
Messages postés
28
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
7 mai 2010
5 févr. 2010 à 15:33
5 févr. 2010 à 15:33
merci Beaucoup
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
5 févr. 2010 à 14:38
5 févr. 2010 à 14:38
Si tu veux écrire la ligne suivante en dessous, il n'y a pas besoin de déterminer le curent.x suffit de metrre
Printer.print "Le texte à imprimer" & Chr(13) >> ou chr(10) me rapel plus.
La ligne suivante sera automatiquement imprimée en dessous.
Si tu veux indenter la ligne tu peu aussi ajouter Tab(x) >> (x étant le nombre de tabulation(s))
De cette façon toutes tes lignes seront alignées.
PS: la commande Printer.Print "" >> ajoute une ligne d'espace
:Et tu devrait commencer par mettre l'entête, ça éviterait de devoir y laisser de la place.
Je trouve que tu te complique la vie inutilement, il est plus simple d'employer les commandes simple sauf si la mise en page est compliquée,.
Printer.print "Le texte à imprimer" & Chr(13) >> ou chr(10) me rapel plus.
La ligne suivante sera automatiquement imprimée en dessous.
Si tu veux indenter la ligne tu peu aussi ajouter Tab(x) >> (x étant le nombre de tabulation(s))
De cette façon toutes tes lignes seront alignées.
PS: la commande Printer.Print "" >> ajoute une ligne d'espace
:Et tu devrait commencer par mettre l'entête, ça éviterait de devoir y laisser de la place.
Je trouve que tu te complique la vie inutilement, il est plus simple d'employer les commandes simple sauf si la mise en page est compliquée,.
4 févr. 2010 à 12:03
25 févr. 2010 à 02:18
Comment faire pour arrondir un nombre a 3 chiffre après la virgule, si le quatrième chiffre et supérieur à 4 donc ajouter 1 au troisième chiffre et enlevé le quatrième et ceux qui sont a sa droite par exemple j’ai une variable de type long et qui contient la valeur (123456. 7887457) donc elle sera (123456.789) ?
Comment faire pour obtenir les chiffres qui sont placé après la virgule (après avoir faire l’arrondissement) c-a -d (789) ?