Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Listbox conditionel

Regueiro

XLDnaute Impliqué
Bonsoir le FORUM
Voici mon code
Le Listbox1 dans USF se rempli bien avec les données de la colonne C et D avec la condition
que les données de la colonne C commence par 20 et sans les lignes vides
Par contre lors de la saisie dans le textbox le listbox ne se remplis plus correcetement
Code:
Option Compare Text
Option Explicit
Dim bd()
Dim F As Worksheet

Private Sub CommandButton1_Click()
Unload USFRECHERCHE
End Sub
Private Sub UserForm_Initialize()
Dim i, k
Dim n
Set F = Worksheets("SUIVI CHANTIER")
With Me
    .ListBox1.ColumnCount = 2
    .ListBox1.ColumnWidths = "60;300"
    .startUpPosition = 0
    .Caption = "FORMULAIRE DE RECHERCHE"
    .Top = 15
    .Left = 550
    .Label1.Caption = "TAPEZ LE TEXTE A RECHERCHER OU *"
    .Label2.Caption = "CLICK DANS LA LISTE POUR AFFICHER LE CHANTIER"
    .Label3.Caption = Me.ListBox1.ListCount

    bd = F.Range("C7:D" & F.[C65000].End(xlUp).Row).Value

  n = 0
  Dim TblDest()
  For i = 1 To UBound(bd, 1)
     If bd(i, 1) Like "2*" Then
       n = n + 1: ReDim Preserve TblDest(1 To UBound(bd, 2), 1 To n)
       For k = 1 To UBound(bd, 2): TblDest(k, n) = bd(i, k): Next
     End If
  Next i
 
  Me.ListBox1.Column = TblDest

End With

End Sub
Private Sub ListBox1_Click()

  Dim L As Long  'on ne sait jamais
  L = ListBox1.ListIndex
  If L < 0 Then Exit Sub
  [J8] = ListBox1.List(L, 0)
' [B2] = ListBox1.List(L, 1)
 

End Sub

Private Sub TextBox1_Change()

Dim i, clé, n, ncol, k
Dim Tbl()
Set F = Worksheets("SUIVI CHANTIER")


With USFRECHERCHE

clé = "*" & UCase(.TextBox1) & "*"
    .Label3.Caption = "Nombre : " & .ListBox1.ListCount
    '.ListBox1.Clear
n = 0: ncol = UBound(bd, 2)
  For i = LBound(bd) To UBound(bd)
     If UCase(bd(i, 1)) Like clé Then
    
    
        n = n + 1: ReDim Preserve Tbl(1 To ncol, 1 To n)
        For k = 1 To ncol: Tbl(k, n) = bd(i, k): Next
     End If
   Next i
   If n > 0 Then
      ReDim Preserve Tbl(1 To ncol, 1 To n + 1)
      Me.ListBox1.List = Application.Transpose(Tbl)
      Me.ListBox1.RemoveItem n
   End If
    End With
End Sub
MERCI pour votre Aide
 

Discussions similaires

Réponses
3
Affichages
572
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…