Plus de 10 column dans le tableau

Bonjour tout le monde,

Présentement je travaille sur un fichier d'inventaire et j'aimerais faire un tableau dans un listbox avec le contenue de la base de données créé dans une feuille.

Mais je ne comprends pas comment faire pour avoir plus de 10 column dans le listbox, présentement vous aller me dire mais sur la capture d'écran il y en a moins que dix, c'est normal il y en a des cacher. Dans la BD j'ai l'équivalent de 20 à 30 column.

Voici le code en question je mets aussi la capture d'écran pour comprendre.

Private Sub ListBoxinventaireint_Click()
Dim i As Integer

Me.ListBoxinventaireint2.Clear
Application.ScreenUpdating = False
With Sheets("BDJ")
    .Range("B2").AutoFilter
        .Range("B2").AutoFilter field:=2, Criteria1:=Me.ListBoxinventaireint.Value
    If pl.SpecialCells(xlCellTypeVisible).Rows.Count > 0 Then
        For Each cel In pl.SpecialCells(xlCellTypeVisible)
                        With Me.ListBoxinventaireint2
                .AddItem cel.Value
                For i = 1 To 9

                    .Column(i, .ListCount - 1) = cel.Offset(0, i)
                Next i
                .Column(9, .ListCount - 1) = cel.Row
            End With
        Next cel
    End If
    .Range("B2").AutoFilter
End With
Application.ScreenUpdating = True

End Sub

Private Sub UserForm_Initialize()
Dim dico As Object
Dim dl As Integer

Set dico = CreateObject("Scripting.Dictionary")
With Sheets("BDJ")
    If .AutoFilterMode Then
    End If
    dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row
    Set pl = .Range("B2:B" & dl)
End With
For Each cel In pl
    dico(cel.Value) = ""
Next cel
Me.ListBoxinventaireint.List = dico.keys

End Sub

Merci de votre aide.

En passant je me suis lancer dans un gros projet mais ci certain aurais une curiosité absolue il me ferait plaisir de le partager.

consultation

bonjour

donne un modèle de ta base pour voir si on peux faire une listview a la place de la listbox

A+

Maurice

Bonsoir,

Exemple de ListBox avec plus de 10 colonnes

Option Compare Text
Dim f, BD, ColVisu(), Ncol
Private Sub UserForm_Initialize()
  Set f = Sheets("BD")
  ColVisu = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,12) ' Colonnes à visualiser   (adapter)
    Ncol = UBound(ColVisu) + 1
  BD = f.Range("A2:L" & f.[A65000].End(xlUp).Row)    ' adapter
   '---- Contenu ListBox initial
   Dim Tbl(): ReDim Tbl(1 To UBound(BD), 1 To Ncol)
   For i = 1 To UBound(BD)
      c = 0
      For Each k In ColVisu
        c = c + 1: Tbl(i, c) = BD(i, k)
      Next k
  Next i
   Me.ListBox1.List = Tbl
End Sub

Ceuzin

Bonsoir,

Utilises la propriété "RowSource" et tu auras autant de colonnes que tu veux ! Une piste à adapter :

Private Sub UserForm_Initialize()

    Dim Plage As Range

    Set Plage = DefPlage(ActiveSheet, 1, 1)

    If Plage Is Nothing Then Exit Sub

    ListBox1.ColumnCount = Plage.Columns.Count

    ListBox1.RowSource = Plage.Address

End Sub

Function DefPlage(Fe As Worksheet, L As Long, C As Long) As Range

    On Error GoTo Fin

    With Fe

        Set DefPlage = .Range(.Cells(L, C), _
                       .Cells(.Cells.Find("*", .[A1], -4123, , _
                       1, 2).Row, .Cells.Find("*", .[A1], -4123, , _
                       2, 2).Column))

    End With

    Exit Function

Fin:

    Set DefPlage = Nothing

End Function
Rechercher des sujets similaires à "column tableau"