cela "fonctionne", mais des que je met une virgule dans ma texbox suivi de texte,le texte se retrouve en textbox 2 quand je recharge ma feuille, comment dois-je enregistrer le contenu de mes texbox dans un fichier texte sans avoir ce problème.
Maintenant 2ème problème
j'imprime avec printer.print text1 ...
Je dois imprimer le contenu de text box
problème1
Si je met des textbox multilignes et que je rentre 170 cararctère dans ma textbox , ils se mette sur la 1ère ligne et quand j'inmprime la moitié de mon textbox se trouve en dehors de la feuille, ...
je suppose que en réglant mon premier problème d'enregistrement, le second devrai s'arranger,
le troisième problème c'est que je fait ce projet pour un TFE et que mon délai commence à être vachement dépassé, est-ce que parmis vous un courageux pourrai passer quelques minutes à expliquer à un débutant comment doit-il faire.
un grand merci d'avance
nouvel utilisateur
A voir également:
Problème récupération de données dans un fichier .txt + problème impression par
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 11 févr. 2008 à 18:47
Salut
Même débutant, si tu avais un peu lu les questions du forum ou un peu l'aide de VB, tu aurais vu qu'il faut utiliser Line Input # et pas Input # seul.
Les deux fonctionnent, sauf le deuxième (lol), en fait le deuxième considère que tu as stocker des variables et la première syntaxe considère que tu as stocké des lignes.
Pour l'impression, oui, c'est normal, c'est à toi de gérer la taille de ce que tu imprimes.
Il faut donc que tu calcules la largeur de ton texte en fonction de :
- sa police
- sa taille
- sa longueur
Ceci peut être fait avec Me.TextWidth après avoir donné à Me (ta forme), les attributs de police et taille avec lesquels tu vas imprimer.
A partir de cette taille, tu sauras si tu as besoin ou pas de couper ton texte.
Pour savoir à quel caractère il faut couper, il te suffit de faire une boucle For-Next sur la longueur du texte : dès que la taille fournie par TextWidth dépasse la largeur de ta page d'impression (de mémoire Printer.Width), suffit de couper et de garder le reste du texte pour la prochaine ligne.
Désolé pour ton TFE, fallais s'y prendre plus tôt.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 12 févr. 2008 à 21:58
Re
Il va falloir jouer avec les boucles For-Next en cascade.
Une ligne de TextBox ne te garantit pas qu'elle puisse être imprimée sur la largeur de ta page.
Il te faut donc :
- connaitre la largeur de la page d'impression (Printer.Width ou PageWidth ?)
- faire une boucle de test des premiers caractères (Left) jusqu'aux derniers de ta ligne pour savoir si la longueur (Printer.TextWidth) de ce début de texte, plus le décalage d'origine 2000 que tu lui imposes, ne dépasse pas la largeur de ta page d'impression.
- Si, dans ta boucle, tu as atteint cette largeur maxi avant le dernier caractère, il faudra donc :
- Imprimer ces premiers caractères
- se décaler vers le bas (de Printer.TextHeight au minimum)
- recommencer la boucle for-next avec les caractères restant (ceux qui n'ont pas été imprimés)
etc
Donc, tout est affaire de boucle, de test de largeur de texte (Printer.TextWidth) ...
Voilà, tu as les pièces du puzzle.
Ce n'est pas très compliqué, suffit de savoir manipuler les chaines, de savoir récupérer les caractéristiques d'impression et d'un peu de logique.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 12 févr. 2008 à 22:00
PS :
Line input # va de pair avec Print # et pas Write # qui va t'insérer des " devant et derrière.
As-tu regardé l'aide de VB6 ? ou la foultitude d'exemples de manipulation de fichiers parmi les codes de vbfrance ?
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
DJMAX360
Messages postés8Date d'inscriptionlundi 11 février 2008StatutMembreDernière intervention17 février 2008 11 févr. 2008 à 18:59
Peu apres avoir posé la question j 'ai vu qu'il était aussi possible de le faire avec cette technique (integer au lieu de string)
dim NumFile as integer
NumFile=FreeFile
open "c:\toto.txt" for output as #NumFile
write #numfile, text.text
close
quel est le mieux line input ou cette technique,
merci beaucoup de ton aide en tout cas
pour l'impression j'imprime le contenu de mes texbox, mais étant donné que j 'ai des textbox multiligne,... je n'y arrive pas
le problème c'est que je dois définir le current x et current y mais si il ya 7 lignes à ma textbox l'ensemble est reculéet dessend, puis certaint utilisateur peuvent passer 3 espaces et mettre du texte en dessous, mais comment faire gérer ca à l'imprimante
jusque maintenant j'ai trouvé un système pas trop mal mais au bout de 5 textbox même pas 2 ca devient scabreux
'récupère chaque ligne dans un tableau
s() = Split(Text1(0).Text, vbNewLine, , vbBinaryCompare)
On Error Resume Next
For X = 0 To 10
If s(X) = "" Then
Printer.CurrentY = Printer.CurrentY
Else
Printer.FontSize = 12
Printer.CurrentX = 2000
Printer.CurrentY = Printer.CurrentY + X * 300
Printer.Print s(X)
End If
aussi, je ne sais pas comment lui dire de continuer sur la page 2 je suppose qu'il faut le définir aussi
Voila, merci, et même grand merci à ceux qui prenne encore la peine de répondre au boulet de service.
Vous n’avez pas trouvé la réponse que vous recherchez ?
DJMAX360
Messages postés8Date d'inscriptionlundi 11 février 2008StatutMembreDernière intervention17 février 2008 12 févr. 2008 à 22:07
j'ai la solution ==> pour la mémorisation de mes text box je les met dans ma base de donnée dans des champs memo
et pour l'impression je vais créer des fichier word prédéfini avec des variables et je vais rentrer mes variables dans mes fichier word, comme ca il est cor possible à la personne qui va utiliser le programme de changer quelques petit détails avant l'impression
le seul problème est que mon prof aimerai que je le fasse fonctionner à partir de plusieurs machine, comment dois-je faire???
lui m' as dit que partager la base de données "sous access" sur une machine "serveur" et pour les client créer des lecteur réseau et changer le chaemin d'accès dan mon programme
est-ce possible que ca fonctionne ?? oui , non ?
merci beaucoup en tout cas d'éclairer la triste lanterne