Textbox multiligne

Résolu
titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007 - 19 janv. 2007 à 12:29
titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007 - 20 janv. 2007 à 10:38
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

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
19 janv. 2007 à 23:59
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
3
cs_mouadkrt Messages postés 8 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 24 janvier 2007
19 janv. 2007 à 12:40
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
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
19 janv. 2007 à 12:49
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 ....)
0
titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007
19 janv. 2007 à 13:56
dsl mais c'est la réponse 2 lol alors comment peut on faire ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
19 janv. 2007 à 14:48
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 !
0
titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007
19 janv. 2007 à 14:50
merci mais je ne comprend po ton algo tu peux me l'expilquer ? stp merci
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
19 janv. 2007 à 14:56
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 ?
0
titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007
19 janv. 2007 à 14:58
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é ?
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
19 janv. 2007 à 15:04
Alors laisse tomber et calcule avec textwidth et textheight (vois ces mots dans ton aise en ligne et bons calculs)
0
titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007
19 janv. 2007 à 15:07
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?
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
19 janv. 2007 à 15:13
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...
0
titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007
19 janv. 2007 à 15:24
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
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
19 janv. 2007 à 18:01
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 !
0
titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007
19 janv. 2007 à 19:48
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.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
19 janv. 2007 à 22:17
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 !....
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
20 janv. 2007 à 00:19
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 ...
0
titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007
20 janv. 2007 à 09:52
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
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
20 janv. 2007 à 10:36
"...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 ?
0
titil64 Messages postés 67 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 5 février 2007
20 janv. 2007 à 10:38
on est d'accord tu as raison
c'est bien
0
Rejoignez-nous