Impression sur plusieurs colonnes

Résolu
cs_machto Messages postés 179 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 18 février 2009 - 17 févr. 2006 à 00:23
cs_machto Messages postés 179 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 18 février 2009 - 22 févr. 2006 à 09:29
Bonsoir.

J'ai fait un petit programme pour lister le contenu des dossiers. Mon problème est que je n'imprimme que sur le latéral gauche de la page et perds tout le reste du papier. Je n'ai pas trouver comment faire une mise en page pour imprimer sur plusieurs colonnes. Pouvez vous me guider si cela est possible?
Merci par avance
JMMACHTO

4 réponses

ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
19 févr. 2006 à 21:29
Bon, je ne suis pas un spécialiste de l'impression en VB (puisque n'en ayant jamais implémenté) mais je vois deux solutions possibles :
Imprimer les dossiers les uns à la suite des autres séparés par des tabulateurs façon oldschool.
Print Rep1 & CHR(9) & Rep2 & CHR(9) & Rep3
Les inconvénients sont évidents...

Pour pallier ces problèmes on ne peut que faire appel à une procédure plus complexe...
Mais tout dépend du nombre de caractères du nom des dossiers... S'il est constant où, factuellement d'une amplitude moindre l'algorithme n'en sera que facilité, sinon, il faudra sans doute faire appel à des techniques un tantinet plus compliquées.

Cependant, la première chose à déterminer est l'ordonnancement visuel des fichiers à savoir, soit de gauche à droite et de haut en bas soit de haut en bas puis de gauche à droite.

Horizontal :
Fich1
Fich2
Fich3

Fich4
Fich5
Fich6

Fich7
Fich8
Fich9

Vertical :
Fich1
Fich4
Fich7


Fich2
Fich5
Fich8


Fich3
Fich6
Fich9



Le plus simple étant la première organisation, évidemment!

La seconde laisse apparaître un problème de sécabilité et de consultation du listing (puisque vertical!).

Mais si tu souhaites quand même employer l'affichage vertical, il faudra déterminer, ce qui est loin d'être une chose aisée, le nombre de lignes selon le nombre de colonnes souhaitées et selon les cas particuliers (noms trop longs pour tenir dans une seule colonne). Mais là, moi, je ne me lancerais pas dans ce sens!

Tout le problème du premier mode d'affichage (horizontal donc) est, donc, les fichiers portant un nom ne tenant pas dans dans la colonne... Du moins, si tu t'axes sur la colonne plutôt que, comme Windows le fait dans l'Explorateur de Fichiers en mode d'affichage Liste, sur le nom de fichier le plus long!

Mais dans tous les cas, le problème numéro un est de déterminer la taille des noms.
Subodorant que tu récupères ces noms dans une variable - à un moment ou à un autre - il suffit donc d'utiliser la fonction Len(string) :
varNom = "fichier.ext"
varTailleDuNom = Len(varNom)
En l'occurrence, varTailleDuNom sera égale à 11.

Il faut, évidemment, connaître le nombre maxi de caractères que tu peux entrer horizontalement dans ta page!

Il y a aussi la fonction Space(n) qui te retournera une chaine de caractère de n espaces.
Space(5) renverra donc " "

Avec ces deux fonctions il ne te reste plus qu'a faire des évalutations (avec l'instruction If ) et des concaténations de chaîne (avec & ).

Bon, je te donne pas de code car, après tout, je ne connais pas le tien!
Si tu as encore des problèmes pour implémenter ça, demande moi... mais plus précisément

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
3
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
17 févr. 2006 à 01:26
Oui, cela est possible et on peut te guider.

Une autre question aussi imprécise ?

Au fait Machto, t'a remarqué ???
Non, t'a pas remarqué !?
Ben on est pas dans ta tête!!!
Si si, j'assure, on est pas dans ta tête pour deviner, entre autre, avec quel langage et quelle version de ce dernier tu programme!

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
0
cs_machto Messages postés 179 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 18 février 2009 1
19 févr. 2006 à 17:46
Bonsoir,
Excuse-moi... J'essaie de m'y remettre.. (56 ans) je n'ai pas tous les reflèxes.

Bref: Je suis en VB 6.0, Windoxs Me.... quoi d'autre?

Merci par avance
Machto
0
cs_machto Messages postés 179 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 18 février 2009 1
22 févr. 2006 à 09:29
Bonjour, je te remercie de ta réponse mais, c'est un peu compliqué pour moi, pour l'instant: Je garde..
J'ai réussi (quel exploit!) à avoir plusieurs colonnes dans ma listbox et la trier. Il me suffirait de les imprimer comme tel.
Mon petit code me permet de lister le contenu de mes CD de suvegarde mais je ne peux pas inserrer dans le boîtier 10 pages de papier... Tu comprends... D'où ma recherche d'utiliser toute ma feuille de papier et non pas seulement la colonne de droite.
En tout cas merci de ton, intérêt
JMMACHTO
0
Rejoignez-nous