Textbox multiligne [Résolu]

Signaler
Messages postés
67
Date d'inscription
dimanche 25 avril 2004
Statut
Membre
Dernière intervention
5 février 2007
-
Messages postés
67
Date d'inscription
dimanche 25 avril 2004
Statut
Membre
Dernière intervention
5 février 2007
-
comment afficher les différentes lignes d'une textbox multigne dans différent label en cliquant sur un bouton de commande (chaque ligne = 1 label)

19 réponses

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
JMF,
si je me fie aux précédents messages parlant de UserForm1... j'en conclus qu'il est sous Excel...

Titil64,
si c'est le cas, tu devrais poser tes questions sur le Forum dédié à VBA

Sinon, veuillez ignorer mon commentaire...

MPi
Messages postés
8
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
24 janvier 2007

Bounjour,
Tu ajoute un label à ta form (apelons le label1)
tu lui fais un copier-coller et tu repond oui à vb pour que ça soit un tableau
ensuite tu suprime label1(1) (on garde label1(0) seul)
si Text1 et ton textbox multilgne; alors voici le code du bouton :

Private Sub Command1_Click()
    tabb = Split(Text1, vbCrLf)
    For i = 0 To UBound(tabb)
    Load Label1(i + 1)
    Label1(i + 1).Visible = True
    Label1(i + 1).Top = Label1(i).Top + 350
    Label1(i + 1).Caption = tabb(i)
    Next
End Sub
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
22
Très bien, 38457 mouadkrt,.....

Mais j'ai en ce qui me concerne une question de base :
Qu'entend =266875 titil64  par lignes d'une textbox ?

1) les lignes "réelles" (séparées en effet par des vbcrlf) ?
2) les lignes "apparentes" (résultant de la gestion de l'affichage dans une textbox) ?

Si c'est la réponse 2 : couic ! ..... (il faudra traiter bien autrement ....)
Messages postés
67
Date d'inscription
dimanche 25 avril 2004
Statut
Membre
Dernière intervention
5 février 2007

dsl mais c'est la réponse 2 lol alors comment peut on faire ?
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
22
T'intéresser à ceci... analyser... comprendre... adapter à ton cas ...

Private Declare Function SendMessageAsLong Lib "user32" _
     Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
     ByVal wParam As Long, ByVal lParam As Long) As Long
Const EM_GETLINECOUNT = 186




Private Sub Command1_Click()
    Dim lCount As Long
    lCount = SendMessageAsLong(Text1.hWnd, EM_GETLINECOUNT, 0, 0)
    MsgBox lCount
End Sub


Amuse-toi bien !
Messages postés
67
Date d'inscription
dimanche 25 avril 2004
Statut
Membre
Dernière intervention
5 février 2007

merci mais je ne comprend po ton algo tu peux me l'expilquer ? stp merci
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
22
Ce n'est pas un algo, c'est du code ! Et il fait appel à une fonction de l'API de Windows !


Si c'est trop dur pour toi, tu as une autre possibilité (mais il te faudra te montrer fort en Maths) : utiliser Texwidth et TextHeiht, une boucle lente et beaucoup de calculs.


Une petite réflexion : celà ne sert rigoureusement à rien professionnellement ... et ne peut qu'être un exercice de cours...


Alors ?
Messages postés
67
Date d'inscription
dimanche 25 avril 2004
Statut
Membre
Dernière intervention
5 février 2007

je vois en effet mais comme je ne comprend po le code que tu m'a mis je ne sais po où lui dire d'envoyer ma ligne copié ?
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
22
Alors laisse tomber et calcule avec textwidth et textheight (vois ces mots dans ton aise en ligne et bons calculs)
Messages postés
67
Date d'inscription
dimanche 25 avril 2004
Statut
Membre
Dernière intervention
5 février 2007

mais tu m'ecris un code explique moi vite fait ce qu'il fait et aprés je regarderai c'est toujours intérréssant de connaitre des codes nouveaux ,non?
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
22
Ecoute, tu commences par l'essayer :

Un projet avec une Form et une textbox multiligne Text1 et un bouton de command Command1

tu lances ===>>> tu écris plusieurs lignes dans ta textbox  ===>> tu cliques sur command1 ===>> tu regardes le message reçu ===>> tu en tires des conclusions ===>> tu commences à réfléchir à un mécanisme à mettre en place pour atteindre ton but en profitant de ce que tu as découvert là !

C'est loin d'être difficile et c'est TON excercice, que je ne vais surtout pas faire à TA place !
Et ce sera TA note, pas la mienne, bien évidemment...
Messages postés
67
Date d'inscription
dimanche 25 avril 2004
Statut
Membre
Dernière intervention
5 février 2007

je ne suis plus à l'école mais merci qd meme je le fait pour le plaisir mais bon!

et au fait je n'ai rien qui s'affiche alors c'est peut etre pour ça que je ne comprends po
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
22
Si tu n'as rien qui s'affiche, celà veut dire que :

-soit tu n'as pas mis cette ligne là :
MsgBox lCount
-soit tu as mal orthographié lCount quelquepart !

Fais donc un copier-coller, celà vaudra mieux !
Messages postés
67
Date d'inscription
dimanche 25 avril 2004
Statut
Membre
Dernière intervention
5 février 2007

j'ai tout bien ecris mais il me met 
Private Declare Function SendMessageAsLong Lib "user32" _
     Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
     ByVal wParam As Long, ByVal lParam As Long) As Long
Const EM_GETLINECOUNT = 186


Private Sub CommandButton1_Click()
    Dim lCount As Long
    lCount = SendMessageAsLong(Text1.hWnd, EM_GETLINECOUNT, 0, 0)
    MsgBox lCount


End Sub

il me marque erreur de compilation 
membre de méthode ou de données introuvable 

et me surligne 
Private Sub CommandButton1_Click()
et 
.hWnd.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
22
Ah oui ?

1) j'espère que tu as ajouté une textbox multiligne nommée Text1 et que tu y a frappé du texte avant de cliquer sur ton bouton de commande

2) j'espère que tu as bien un bouton de commande nommé CommandButton1

3) j'espère que tu développe bien sous VB6 (ou VB5) .... forum ur lequel tu es ...


Cherche donc la faille !

Si, comme je l'espère, tu es vraiment sous VB6, fais un tout petit projet, avec ce que je t'ai dit plus haut et le code (par copier-coller) que je t'ai donné plus haut !
Si tu n'es pas sous VB6 ou VB5 : sans commentaires !....
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
22
Merci beaucoup

MPI (je commençais à me douter d'un truc de ce genre ! )

Mais je n'ai pas pensé à scruter toutes ses autres discussions (dans la présente : aucun indice de VBA ! )

Je ne vais pas continuer avec lui dans te telles conditions !
Et ce d'autant qu'il n'a pas non plus TextWidth avec VBA (si je ne me trompe pas) et qu'il lui faudrait pour celà aussi utiliser une autre fonction de l'API de Windows (... et j'ai bien l'impression, maintenant, qu'il serait vain de tenter une telle aventure compte tenu du niveau apparent que montrent les autres discussions qu'il a ouvertes..)

Bonne chance titil64 et étudie bien ...
Messages postés
67
Date d'inscription
dimanche 25 avril 2004
Statut
Membre
Dernière intervention
5 février 2007

jmfmmarques

merci de ses commentaires qui font avancer tout le monde .
Tu sais on ne peut pas etre doué comme toi alors s'il te plait soit un peu plus aimable et arrete de me prendre pour un "con" merci.
et depuis que je suis sur le site je n'ai fait que du VBA alors quand tu intervient sur une question, lit au moins les topics précedent au lieu de donner une solution et aprés de me critiquer.

sur ceux
MPI merci je n'avais pas vu qu'il y avait un forum VBA
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
22
"...lit au moins les topics précedent..."




Non mais.... !
Ca va bien ta tête, là, tu es sûr  ?
Voilà maintenant qu'il faut fouiller dans les "topics" d'un forumeur pour savoir (car il ne le dit pas dans la discussion ouverte), sous quel langage il développe l'objet de sa discussion ?

Mis à part l'aspect "nombriliste" de cette suggestion... Te viendrait-il à l'idée qu'un même forumeur peut développer ici sous VBA et là sous VB... et là encore sous VB.NET ?
Tu vas bien, oui ?
Messages postés
67
Date d'inscription
dimanche 25 avril 2004
Statut
Membre
Dernière intervention
5 février 2007

on est d'accord tu as raison
c'est bien