Impression list [Résolu]

Signaler
Messages postés
38
Date d'inscription
mardi 13 décembre 2005
Statut
Membre
Dernière intervention
1 novembre 2007
-
Messages postés
38
Date d'inscription
mardi 13 décembre 2005
Statut
Membre
Dernière intervention
1 novembre 2007
-
Bonjour,

je suis sous vb6,j'imprime des listbox avec l'objet printer. je voudrais savoir s'il est possible d'imprimer un champs d'une liste sur deux lignes si celui ci est trop long.

si mon champs contient plus de 80 caracteres je voudrais l'imprimer sur deux lignes: comment faire?

Printer.CurrentX = 15 'ingestion
Printer.CurrentY = 140
Printer.FontItalic = False
Printer.FontBold = True
For i = 0 To frmapercu.List9.ListCount - 1
nb = Len(frmapercu.List9.List(i))
If nb > 80 Then
Printer.FontSize = 6
Else: Printer.FontSize = 8
End If
End If
Printer.CurrentX = 15
Printer.Print (frmapercu.List9.List(i))
Next i

merci

2 réponses

Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
22
Je pense qu'il faut utiliser la fonction Mid...

Dim varTxtTmp As String

Printer.CurrentX = 15 'Ingestion
Printer.CurrentY = 140
Printer.FontItalic = False
Printer.FontBold = True
'N'ayant jamais utilisé l'objet Printer,

Printer.FontSize = 8 'je sais pas si ces 2 lignes ne sont
Printer.CurrentX = 15 'pas à mettre DANS le For/Next et Do/Loop! A toi de voir!
For i = 0 To frmapercu.List9.ListCount - 1

varTxtTmp = frmapercu.List9.List(i) 'Récupère le texte de la liste
Do While Len(varTxtTmp) > 80
Printer.Print (Mid(varTxtTmp,1,80)) 'Imprime les 80 premiers caractères
'Ici on enlève de varTxtTmp les 80 premiers caractères

varTxtTmp = Mid(varTxtTmp, 81, Len(varTxtTmp) - 80)

Loop
Printer.Print (varTxtTmp)
Next i

Note que le code en rouge est celui que j'ai ajouté/modifié et non une "erreur"!!! Mais ça, je pense que tu l'avais compris!

Bon, j'ai pas testé donc c'est à toi de me dire si ça fonctionne ou pas (y'a peut-être un caractère qui saute à chaque fois ou une erreur... alors teste et dit moi!

Sinon, concernant l'instruction Mid, ce n'est pas compliqué :
Mid ( texte, caractére de début, nombre de caractères )
Autrement dit, Mid renvoie (retourne, si tu préfères) une portion de texte contenu dans un autre texte. Par exemple :
varText = Mid("ABCDEFGHIJKL", 4, 7)
varText sera égale à "DEFGHIJ"...
Mais regarde dans l'aide... elle est plus concise que moi et mes explications!

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Messages postés
38
Date d'inscription
mardi 13 décembre 2005
Statut
Membre
Dernière intervention
1 novembre 2007

Salut

c'est nikel rien a redire !

merci de ton aide;)