Bonjour à tous,

J'ai découvert sur ce site ce petit bout de code qui semble répondre à mon besoin.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
- Copiez tout d'abord ces déclarations au début du module de la form :
 
 
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
                                    (ByVal hwnd As Long, ByVal wMsg As Long, _
                                     ByVal wParam As Long, lParam As Any) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, _
                                                                     ByVal Length As Long)
 
Private Const EM_GETLINECOUNT = &HBA
Private Const EM_LINELENGTH = &HC1
Private Const EM_LINEINDEX = &HBB
Private Const EM_GETLINE = &HC4
 
 
 
- La procédure ci-dessous affiche une par une les lignes du textbox dont le handle est passé en paramètre :
 
 
Private Sub AfficheLignes(lngHandleTextBox As Long)
 
Dim lngNbLignes As Long, i As Long
Dim lngIndexCar As Long, intLongueurLigne As Integer
Dim strLigne As String
 
'nombre de lignes
lngNbLignes = SendMessage(lngHandleTextBox, EM_GETLINECOUNT, 0, 0)
 
For i = 1 To lngNbLignes
   'index du premier caractère de la ligne
   lngIndexCar = SendMessage(lngHandleTextBox, EM_LINEINDEX, i - 1, 0)
   'longueur de la ligne
   intLongueurLigne = SendMessage(lngHandleTextBox, EM_LINELENGTH, lngIndexCar, 0)
   'récupère la ligne dans la chaîne strLigne
   strLigne = Space(intLongueurLigne)
   CopyMemory ByVal strLigne, intLongueurLigne, Len(intLongueurLigne)
   SendMessage lngHandleTextBox, EM_GETLINE, i - 1, ByVal strLigne
   MsgBox strLigne
Next
 
End Sub
Le hic, c'est que mon expérience est limitée en programmation (surtout en VB) et que je ne sais pas comment obtenir le "handle" du text box que je doit passer en paramètre.

Cela dit, votre aide serait grandement apprécié.

Rob.