cs_tolt
Messages postés269Date d'inscriptionmardi 17 décembre 2002StatutMembreDernière intervention 4 avril 2019
-
27 août 2008 à 07:54
dedenet2
Messages postés372Date d'inscriptionvendredi 27 juillet 2007StatutMembreDernière intervention22 juillet 2013
-
27 août 2008 à 16:31
Bonjour à tous,
J'ai pu reprendre un code qui marche très bien mais qui n'imprime que sur du A4.J'ai beau chercher et chercher comment le faire imprimer sur du papier zone vert 11pouces sur 38pouces mais j'y arrive pas.
Je vous indique le code ci-dessous et si vous avez une idée MERCI BEAUCOUP.
On Error GoTo Err_Main
Dim lNB_MAX_ELEM_PAGE As Long
Dim P As Printer
Dim lComptElem As Long
Dim liItem As ListItem
Dim idxCol As Integer
Dim lLargTot As Long
Dim lCurXtmp As Long, lCurYtmp As Long
Dim lNumPageCour As Long, lNbPages As Long
Dim sApplication As String, sDate As String
Dim lNbCarAff As Long
lNB_MAX_ELEM_PAGE = 35
If Ori "P" Then lNB_MAX_ELEM_PAGE 70
sTitre = UCase(Trim(sTitre))
sApplication = "Le logiciel " & titre
sDate = Format(Now, "dddd d mmmm yyyy")
lLargTot = 0
For idxCol = 1 To lvwSource.ColumnHeaders.Count
If lvwSource.ColumnHeaders(idxCol).Width <> 0 Then
lLargTot = lLargTot + lvwSource.ColumnHeaders(idxCol).Width
End If
Next
P.CurrentX = 0
For idxCol = 1 To lvwSource.ColumnHeaders.Count
If lvwSource.ColumnHeaders(idxCol).Width <> 0 Then
lCurXtmp = P.CurrentX
P.CurrentY = 10
If lvwSource.ColumnHeaders(idxCol).Width > 0 Then
P.FontBold = True: P.Print lvwSource.ColumnHeaders(idxCol).Text
End If
P.CurrentX = lCurXtmp + (lvwSource.ColumnHeaders(idxCol).Width * 100) / lLargTot
End If
Next
P.Line (0, 13)-(100, 13)
P.CurrentY = 14
lComptElem = 0
For Each liItem In lvwSource.ListItems
lCurYtmp = P.CurrentY
For idxCol = 1 To lvwSource.ColumnHeaders.Count
If lvwSource.ColumnHeaders(idxCol).Width > 0 Then
P.FontBold = False
lNbCarAff = Int(((lvwSource.ColumnHeaders(idxCol).Width * 100) / lLargTot) / P.TextWidth("A"))
If idxCol = 1 Then
lCurXtmp = 0
P.CurrentX = lCurXtmp
P.CurrentY = lCurYtmp
P.FontBold = False: P.Print Left(liItem.Text, lNbCarAff)
Else
lCurXtmp = lCurXtmp + (lvwSource.ColumnHeaders(idxCol - 1).Width * 100) / lLargTot
P.CurrentX = lCurXtmp
P.CurrentY = lCurYtmp
P.FontBold = False: P.Print Left(liItem.SubItems(idxCol - 1), lNbCarAff)
End If
Else
lCurXtmp = lCurXtmp + (lvwSource.ColumnHeaders(idxCol - 1).Width * 100) / lLargTot
End If
Next
dedenet2
Messages postés372Date d'inscriptionvendredi 27 juillet 2007StatutMembreDernière intervention22 juillet 20132 27 août 2008 à 11:28
Bonsoir ,
Je n'ai pas le temps de dechiffrer ce code sur VB6 mais il
est peut être fait uniquement pour une impression A4.
Par contre dans ce code ,
je ne vois pas l'instruction "PaperSize".Cette derniere
permet de choisir le format.
A+
gillardg
Messages postés3275Date d'inscriptionjeudi 3 avril 2008StatutMembreDernière intervention14 septembre 20142 27 août 2008 à 12:36
gillard ?? c'est qui ???encore un nouveau ???
oui ,ok, j'avais compris, (c'est pourquoi j'ai mis ça entre parenthèses) et en vb6 il n'y a pas de dialog du genre?????????????????
cs_tolt
Messages postés269Date d'inscriptionmardi 17 décembre 2002StatutMembreDernière intervention 4 avril 2019 27 août 2008 à 12:44
Je suis en VB6 effectivement dedenet2...
Je recherche une solution que je ne trouve pas persollement et je suis pas nouveau sur VBfrance Mr gillardg !!!
cs_tolt
Messages postés269Date d'inscriptionmardi 17 décembre 2002StatutMembreDernière intervention 4 avril 2019 27 août 2008 à 13:42
Vraiment pas de soucis Mr gillardg, vous savez à mon âge on est susceptible.
Je suis débutant mais j'aime bien chercher.Mais là je trouve pas...
Je fais un petit logiciel pour ma COPRO et nous avons une vieille imprimante et beaucoup de cartons de papier ZoneVert standard en continu que nous voulons encore utiliser.
gillardg
Messages postés3275Date d'inscriptionjeudi 3 avril 2008StatutMembreDernière intervention14 septembre 20142 27 août 2008 à 14:07
dans les CommonDialog n' y a il donc pas un printer setting dialog en vb6 ??
est ce plus clair ainsi , en fait c'est la question que je me pose car je n'ai pas vb6 (je l'ai jeté en 2002 avec mon vieux PC)
mais si ce dialog existe il résoudra le problème
donc regarde dans vb6 => common dialog
dedenet2
Messages postés372Date d'inscriptionvendredi 27 juillet 2007StatutMembreDernière intervention22 juillet 20132 27 août 2008 à 16:31
Salut ,
Effectivement , le commondialog existe en VB6.
Il faut le charger ( Microsoft common dialog control 6) dans le projet.
Voici le code de base:
--------------------------------------------------------------------------------------------
Private Sub Command1_Click()
Dim BeginPage, EndPage, NumCopies, i
' Attribue à CancelError la valeur True
CommonDialog1.CancelError = True
On Error GoTo ErrHandler
' Affiche la boîte de dialogue Impression
CommonDialog1.ShowPrinter
' Récupère les valeurs définies par l'utilisateur dans la boîte
' de dialogue
BeginPage = CommonDialog1.FromPage
EndPage = CommonDialog1.ToPage
NumCopies = CommonDialog1.Copies
For i = 1 To NumCopies
' Insérer ici du code pour envoyer des données à l'imprimante
[UTILISER L'OUTIL PRINTER]
Next i
Exit Sub
ErrHandler:
' L'utilisateur a cliqué sur Annuler
Exit Sub