Listbox erreur d'execution 380

Hello,

Je possède un tableau de 10 colonnes. Je veux que si je tape un nom dans TEXBOX1, ma Listbox génère toutes les lignes de ce nom.

Cela fonctionne bien mais si mon tableau fait + de 10 colonnes cela genère une erreur

Est-ce qu'il y a une limitation de 10 colonnes ou mon code qui ne vas pas ?

Merci à vous.

8test-lisbox.xlsm (21.12 Ko)

Bonjour,

Si on alimente une listbox par additem on est effectivement limité à 10 colonnes.

Pour avoir plus de 10 colonnes il faut utiliser un tableau (array) contenant les données, puis "charger" la listbox avec ce tableau

Par exemple:

T=Range("A2:Z25")
ListBox1.List = T

A+

Merci je vais tester ça

Maintenant j'ai une autre question, Si j'ai 40 colonnes mais je veux en afficher 15 qui ne sont pas les unes à la suite des autres...

Est ce qu'on peut faire ?

Merci.

Créer un tableau dans l'ordre des colonnes voulues.

Par exemple:

dim TableauFinal(),T
T=range("A2:AX350")
redim TableauFinal(ubound(T,1), 1 to15)
for i =  lbound(T,1) to ubound(T,1)
   TableauFinal(i, 1) = T(i , 1)
   TableauFinal(i, 2) = T(i , 5)
   TableauFinal(i, 3) = T(i , 18)
    .../...
   TableauFinal(i, 15) = T(i , 2)
next
ListBox1.List =TableauFinal

A+

Au top merci à toi

Plutôt redimensionner le tableau comme ceci:

Redim TableauFinal(1 to Ubound(T,1) , 1 to 15)

Bonjour,

Exemple avec 15 colonnes discontinues.

Private Sub UserForm_Initialize()
  Set f = Sheets("bd")
  TblBD = f.Range("A2:Z" & f.[A65000].End(xlUp).Row).Value
  Dim TblRes: ReDim TblRes(1 To UBound(TblBD), 1 To 15)
  col = 0
  For Each k In Array(1, 2, 4, 7, 8, 9, 10, 11, 12, 20, 21, 22, 23, 24, 25) ' colonnes à récupérer
    col = col + 1
    For i = 1 To UBound(TblBD): TblRes(i, col) = TblBD(i, k): Next i
  Next k
  Me.ListBox1.List = TblRes
End Sub

Pour un ListBox avec condition

Private Sub ComboBox1_click()
  Dim Tbl(): j = 0
  For i = 1 To UBound(BD)
    If BD(i, 1) = Me.ComboBox1 Then
      j = j + 1: ReDim Preserve Tbl(1 To Ncol, 1 To j)
      c = 0
      For Each k In ColVisu
        c = c + 1: Tbl(c, j) = BD(i, k)
      Next k
    End If
  Next i
  Me.ListBox1.Column = Tbl

Boisgontier

Hello Jacques,

Aurais-tu stp une version commentée de tes codes ?

J'aimerai bien reprendre tes codes mais si j'ai un souci par la suite je ne serai pas capable d'y mettre le nez dedans ... Il y a trop de lettre pour moi

Merci à toi.

Bonjour,

Il faut adapter les lignes en rouge.

Boisgontier

Merci Jacques.

Ton fichier fonctionne bien mais ce que je souhaite c'est une version commentée pour comprendre ce que tu fais car là je n'y comprends pas grande chose ...

Recopier bêtement un code d'une autre personne sans le comprendre c'est pas mon truc ...

Merci à toi.

Exemple quand je veux l'adapter à mon vrai fichier j'ai une erreur "Incompatibilité de type sur la ligne de code

  For Each k In ColVisu

, je suis incapable de deboguer ...

Rechercher des sujets similaires à "listbox erreur execution 380"