Les pros de la listbox
Bonjour les pros de listbox
svp j'ai un petit projet qui consiste a afficher les résultats d'une recherche sur les listbox de mon userform
Etape 1: afficher les informations client suite à la saisie sur textbox1, textbox2, textbox3 ou textbox4 (en utilisant textbox_after_change) Les informations client se trouvent sur la feuille BASE_CLIENT :
Lorsque je saisi un N° DE POLICE sur la textbox1 il me renvoie sur la listbox1, les informations de ce N° DE POLICE dans l'ordre :
N° DE POLICE, NOM, PRENOM, CIN, DATE DE NAISSANCE, CANAL, SOCIETE, CODE INTERMEDIAIRE, NOM INTERMEDIAIRE
Lorsque je saisi un N° CIN sur la textbox2 il me renvoie sur la listbox1, les informations de ce N° CIN dans l'ordre :
N° DE POLICE, NOM, PRENOM, CIN, DATE DE NAISSANCE, CANAL, SOCIETE, CODE INTERMEDIAIRE, NOM INTERMEDIAIRE
Lorsque je saisi un NOM sur la textbox3 il me renvoie sur la listbox1, les informations de ce NOM dans l'ordre :
N° DE POLICE, NOM, PRENOM, CIN, DATE DE NAISSANCE, CANAL, SOCIETE, CODE INTERMEDIAIRE, NOM INTERMEDIAIRE
Lorsque je saisi un PRENOM sur la textbox il me renvoie sur la listbox1, les informations de ce PRENOM dans l'ordre :
N° DE POLICE, NOM, PRENOM, CIN, DATE DE NAISSANCE, CANAL, SOCIETE, CODE INTERMEDIAIRE, NOM INTERMEDIAIRE
la listbox1 doit comporter les entêtes de colonnes.
Une fois réalisé je pourrai passer l'étape 2
Merci pour vos contributions. ci-joint mon fichier
Bonjour,
Private Sub UserForm_Initialize()
nomtableau1 = "Tableau1"
nomtableau2 = "Tableau2"
Set Rng1 = Range(nomtableau1)
Set Rng2 = Range(nomtableau2)
TblBD1 = Rng1.Value
TblBD2 = Rng2.Value
ColVisu1 = Array(1, 2, 3, 4, 5, 6, 7, 8, 9) ' Colonnes à visualiser (adapter)
ColVisu2 = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11) ' Colonnes à visualiser (adapter)
NbCol1 = UBound(ColVisu1) + 1
NbCol2 = UBound(ColVisu2) + 1
'---- Contenu ListBox initial
EnteteListBox1
EnteteListBox2
Affiche1 1, "*"
Affiche2 1, "*"
End Sub
Private Sub TextBox1_Change()
Affiche1 1, TextBox1 & "*"
End Sub
Private Sub TextBox3_Change()
Affiche1 2, TextBox3 & "*"
Affiche2 3, TextBox3 & "*"
End Sub
Private Sub TextBox2_Change()
Affiche1 4, TextBox2 & "*"
End Sub
Sub Affiche1(colrech, temp)
Dim Tbl(): N = 0
For i = 1 To UBound(TblBD1)
If TblBD1(i, colrech) Like temp Then
N = N + 1: ReDim Preserve Tbl(1 To NbCol1, 1 To N)
c = 0
For Each k In ColVisu1
c = c + 1: Tbl(c, N) = TblBD1(i, k)
Next k
End If
Next i
If N > 0 Then Me.ListBox1.Column = Tbl Else Me.ListBox1.Clear
End Sub
Sub Affiche2(colrech, temp)
Dim Tbl(): N = 0
For i = 1 To UBound(TblBD2)
If TblBD2(i, colrech) Like temp Then
N = N + 1: ReDim Preserve Tbl(1 To NbCol2, 1 To N)
c = 0
For Each k In ColVisu2
c = c + 1: Tbl(c, N) = TblBD2(i, k)
Next k
End If
Next i
If N > 0 Then Me.ListBox2.Column = Tbl Else Me.ListBox2.Clear
End Sub
Sub EnteteListBox1()
x = Me.ListBox1.Left + 8
y = Me.ListBox1.Top - 16
For Each k In ColVisu1
Set Lab = Me.Controls.Add("Forms.Label.1")
Lab.Caption = Rng1.Offset(-1).Resize(1).Cells(1, k)
Lab.Top = y
Lab.Left = x
Lab.Height = 15
x = x + Rng1.Columns(k).Width * 1#
temp = temp & Rng1.Columns(k).Width * 1# & ";"
Next
temp = Left(temp, Len(temp) - 1)
Me.ListBox1.ColumnCount = UBound(ColVisu1) + 1
Me.ListBox1.ColumnWidths = temp
End Sub
Sub EnteteListBox2()
x = Me.ListBox2.Left + 8
y = Me.ListBox2.Top - 16
For Each k In ColVisu2
Set Lab = Me.Controls.Add("Forms.Label.1")
Lab.Caption = Rng2.Offset(-1).Resize(1).Cells(1, k)
Lab.Top = y
Lab.Left = x
Lab.Height = 15
x = x + Rng2.Columns(k).Width * 1#
temp = temp & Rng2.Columns(k).Width * 1# & ";"
Next
temp = Left(temp, Len(temp) - 1)
Me.ListBox2.ColumnCount = UBound(ColVisu2) + 1
Me.ListBox2.ColumnWidths = temp
End Sub
Boisgontier
Un grand merci pour toi Boisgontierjacques c'est vraiment top t'es AS
je devrai passer maintenant à l'Etape 2:
1 : Lorsque je sélectionne un ligne sur la listbox1 (informations client) je souhaite afficher sur la listbox2 les lignes encaissement relatives au N° DE POLICE de la ligne sectionnée sur la listbox1 et sur la listbox3 ses lignes rachat
2. Lorsque je sélectionne un ligne sur la listbox1 (informations client) je souhaite afficher sur la listbox3 les lignes rachat relatives au N° CIN de la ligne sectionnée sur la listbox1
j'espère que j'étais assez explicite si tu as besoin de plus d'éclaircissements n'hésite pas.
Merci je te serai très reconnaissant.