Imprimer un flexgrid multi-lignes

Soyez le premier à donner votre avis sur cette source.

Vue 10 020 fois - Téléchargée 2 421 fois

Description

Voici une manière de faire pour imprimer un flexgrid dont les cellules contiennent de longues chaînes de texte réparties sur plusieurs lignes séparées ou non par un retour-chariot.

Vous trouverez également un moyen d'ajuster automatiquement la hauteur de ligne d'une cellule en fonction de son contenu.

Pour l'instant, l'impression se fait sur l'imprimante par défaut.

Conclusion :


Le code doit encore être amélioré afin de permettre :
- la coloration du texte et des cellules ;
- la réalisation d'une marge à gauche ;
- la réalisation de plusieurs pages si la grille est trop grande ;
- l'impression ou non des titres de colonnes sur chacune des pages à imprimer ;
- etc.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
mercredi 11 juillet 2007
Statut
Membre
Dernière intervention
11 juillet 2007

Bonjour,
Très bon code bien utile, fonctionne très bien.
Sinon y aurait-il une solution dans le cas d'une grille trop grande? je suis débutant en vb et j'ai essayé le "printer.newpage" mais je n'obtient pas de très bon résultats,en effet à la denrièere ligne toute les données s'imprimer les unes au dessus des autres, si quelqu'un a une idée.....
bonne journée
xeros
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
Pour le Not =, c'est vrai que c'est une question de gout.
Moi je prefere comme ça, c'est psycho mais je n'aime pas le <>.

Pour le décalage, je sais pas trop. On dirait qu'avec l'option F pour remplir la case, cette dernière est plus grande... Les position X1 et Y1 ne changent pas, mais la cellule termine plus bas et plus a droite (env 2 mm).
Donc ca se croise avec les celules non grisées.

A tu fais un essai ?
Veux tu que je t'envoi mon projet pour voir ?

Bonne prog
++
Messages postés
1133
Date d'inscription
mercredi 2 octobre 2002
Statut
Membre
Dernière intervention
24 juillet 2011
1
Tentes le coup...

Ceci dit, plutôt que "If Not couleur = &HFFFFFF", je préfère écrire "If couleur <> &HFFFFFF" ; ça me paraît plus lisible (compréhensible) lorsqu'on relit le code quelques mois plus tard.

En ce qui concerne le décallage, est-il important ? Je veux dire par là, ne correspondrait-il pas à la "place" que prennent les lignes de la case ?
Ou alors, c'est le "- 1 * 56.7". J'ai ajouté ce morceau afin de tracer les lignes 1 mm avant les positions choisies (PosX, PoY, etc.).

A toi de voir...
Si ton code marche, préviens-moi ; j'aimerais en avoir une copie (si tu changes d'autres choses) afin de pouvoir tenir la source à jour. D'avance merci.
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
Moi non plus pas d'imprimante laser mais je voudrai griser quelques cellules, un niveau de gris me convient parfaitement :

J'ai songé à ça mais il y a un petit décallage :

If Not couleur = &HFFFFFF Then
Printer.Line (posX - 1 * 56.7, posY - 1 * 56.7)-(posX + largeur + 1 * 56.7, posY + hauteur + 1 * 56.7), couleur, BF
Else
Printer.Line (posX - 1 * 56.7, posY - 1 * 56.7)-(posX + largeur + 1 * 56.7, posY + hauteur + 1 * 56.7), , B
End If

Qu'en pense tu ?
Messages postés
1133
Date d'inscription
mercredi 2 octobre 2002
Statut
Membre
Dernière intervention
24 juillet 2011
1
Merci pour la note

Malheureusement pour la couleur, je ne sais... vu que je n'ai toujours pas d'imprimante couleur... (et oui...)
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.