Population de ListBox selon critères spécifiques

Bonjour,

j'utilise Excel comme base de donnée. J'essaie maintenant de limiter les actions des utilisateurs directement dans la grille pour les forcer, plutôt, à passer par un GUI.

Chaque ligne représente un dossier, et j'ai une centaine de colonnes pour les différentes informations.

J'essaie de faire apparaître, dans le ListBox d'un Userform, les dossiers devant être traités. Le statut d'un dossier est présent à la colonne CC (ou position 81) sous la forme "True or False".

J'ai déjà pu trouver, sur Internet, ce code pour importer les informations dans la ListBox. Le problème, c'est que ça importe absolument tout. Je n'arrive pas à imposer une contrainte du genre: "Pour apparaître dans la ListBox1, la valeur présente à la colonne "CC" doit = False.

Private Sub UserForm_Initialize()
'Author       : Ken Puls (http://www.excelguru.ca)
'Macro Purpose: To populate a multi-column listbox with data from
'               a worksheet range

Dim lbtarget As msforms.ListBox
Dim rngSource As Range

    'Set reference to the range of data to be filled
Set rngSource = Worksheets("Principal").Range("A7:E50")

    'Fill the listbox
Set lbtarget = Me.ListBox1
With lbtarget
        'Determine number of columns
      .ColumnCount = 5
        'Set column widths
      .ColumnWidths = "50;50;50;100;100"
        'Insert the range of data supplied
     .List = rngSource.Cells.Value
End With

End Sub

J'ai appris sur le tas jusqu'à présent, mais je n'arrive pas à trouver quelle ligne de code ou commande utiliser pour que rngSource ne contienne que des lignes spécifiques.

Merci pour votre aide!

Bonjour

Comme je ne sais si la propriété List accepte les zones discontinues

Essayes ce code

Private Sub UserForm_Initialize()
Dim Ws As Worksheet
Dim J As Long
Dim I As Integer

  Set Ws = Worksheets("Principal")
  With Me.ListBox1
    'Determine number of columns
    .ColumnCount = 5
    'Set column widths
    .ColumnWidths = "50;50;50;100;100"
    For J = 7 To Ws.Range("A" & Rows.Count).End(xlUp).Row
      ' Cellule vide = False
      If Ws.Range("CC" & J) <> "" And Ws.Range("CC" & J) = False Then
        .AddItem Ws.Range("A" & J)
        For I = 1 To 4
          .List(.ListCount - 1, I) = Ws.Cells(J, I + 1)
        Next I
      End If
    Next J
  End With
End Sub

Je suis bouche-bée! J'ai du mal avec les "count" et je me rends bien compte que ça me nuit énormément.

Ça fonctionne à merveille, merci infiniment!

Simon

Rechercher des sujets similaires à "population listbox criteres specifiques"