Initialisation de lisbox pour 2 colonnes
Bonjour
je ne saurais vous remercier encore une fois
je suis dans le soucis de réaliser mon fichier...et le problème ne se résous pas
une aide si possible
donc... j'ai Private sub qui fonctionne très bien
Private Sub InitListbox()
Dim j As Long
Me.ListBox1.Clear
With Sheets("VENDU")
For j = 6 To .Range("G" & Rows.Count).End(xlUp).Row
If .Range("G" & j) <> "" And .Range("G" & j) Like Me.TextBox67 & "*" Then Me.ListBox1.AddItem .Range("G" & j)
Next j
End With
End Sub
j'aimerais faire un affichage de 2 colonnes dans la listebox1 (bien sur qui suit mon texbox67
merci encore une fois
BOnjour i20100
merci beaucoup pour votre prise en concidération
ci joint le fichier ( j'ai éliminée mes donnée perso)
mon soucis est le suivant:
je vousdrais faire des recherches VIA textbox67 ou 68 , dans un listbox1 (qui comporte 2 colonnes
et quand je doubleclick dans la listbox, respectivement s'affiche dans les textbox les données correspondantesmerci beaucoup pour votre aide
cordialement
re,
tu pourrais inclure les colonnes de recherche dans le listbox et les masquer.
Private Sub UserForm_Initialize()
'InitListbox
Dim VENDU As Worksheet
Set VENDU = Sheets("VENDU")
ListBox1.ColumnCount = 8
ListBox1.ColumnWidths = "0;0;0;0;0;0;88;0"
ListBox1.RowSource = "VENDU!A6:" & VENDU.Range("H65536").End(xlUp).Address
End Sub
Bonjour
merci d'avancee, pour chaque intervention de votre part,
je n'ai pas cloturé ce sujet car je cherche toujours des solutions pour ammelirer mon fichier
suite à plusieurs recherche j'ai trouvé ce qu'il me faut comme code dans INITIALIZE pour ma reinitialisation de mon userform.
mais mon prebleme est le suivant, " je n'ai pas pu faire un affichage inversé en gardant toujours la recherche dans le liste box
ci joint le code et merci à vous pour une eventualle solution
Private Sub UserForm_Initialize()
Set F = Sheets("VENDU")
colVisu = Array(26, 52, 7, 8, 1, 3, 4, 5) ' colonnes à visualiser
Set Rng = F.Range("A6:BN" & F.[A65000].End(xlUp).Row) ' 1 colonne de plus
decal = Rng.Row - 1
BD = Rng.Value
Ncol = UBound(colVisu) + 1
'-- en têtes de colonne ListBox ce qu'on vois au dessus du listbox
x = 15
Y = Me.ListBox1.Top - 12 'position de l'entête
For Each K In colVisu
Set Lab = Me.Controls.Add("Forms.Label.1")
Lab.Caption = F.Cells(5, K) ' ListBox ce qu'on vois au dessus du listbox ligne 5 pour ici
Lab.Top = Y
Lab.Left = x
x = x + F.Columns(K).Width * 1
temp = temp & F.Columns(K).Width * 1 & ";"
Next
temp = Left(temp, Len(temp) - 1)
Me.ListBox1.ColumnCount = UBound(colVisu) + 1
Me.ListBox1.ColumnWidths = temp
ReDim Choix(1 To UBound(BD))
For i = LBound(BD) To UBound(BD)
For Each K In colVisu
Choix(i) = Choix(i) & BD(i, K) & "|"
If K = 4 Then BD(i, K) = Format(BD(i, K), "dd/mm/yyyy")
Next K
Choix(i) = Choix(i) & (i + decal) & "|"
Next i
TriS Choix, 1, UBound(Choix)
'--- valeurs initiales dans ListBox
Dim Tbl(): ReDim Tbl(1 To UBound(BD), 1 To Ncol + 1)
'Dim Tbl(): ReDim Tbl(UBound(BD) To 1, 1 To Ncol + 1)
For i = 1 To UBound(BD)
'For i = UBound(BD) To 1 Step -1
C = 0
For Each K In colVisu
C = C + 1: Tbl(i, C) = BD(i, K)
Next K
C = C + 1: Tbl(i, C) = i + decal
Next i
Me.ListBox1.List = Tbl
End Sub
Sub TriMultiCol(a, ColTri, gauc, droi) ' Quick sort
ref = a((gauc + droi) \ 2, ColTri)
g = gauc: D = droi
Do
Do While a(g, ColTri) < ref: g = g + 1: Loop
Do While ref < a(D, ColTri): D = D - 1: Loop
If g <= D Then
For K = LBound(a, 2) To UBound(a, 2)
'For k = UBound(a, 2) To LBound(a, 2) Step -1
temp = a(g, K): a(g, K) = a(D, K): a(D, K) = temp
Next K
g = g + 1: D = D - 1
End If
Loop While g <= D
If g < droi Then Call TriMultiCol(a, ColTri, g, droi)
If gauc < D Then Call TriMultiCol(a, ColTri, gauc, D)
End Sub
Sub TriS(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) \ 2)
g = gauc: D = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(D): D = D - 1: Loop
If g <= D Then
temp = a(g): a(g) = a(D): a(D) = temp
g = g + 1: D = D - 1
End If
Loop While g <= D
If g < droi Then Call TriS(a, g, droi)
If gauc < D Then Call TriS(a, gauc, D)
End Sub