XL 2010 [RESOLU] Manipuler Array et Listbox

cp4

XLDnaute Barbatruc
Bonjour,
J'ai voulu aider mais je me suis rendu compte que j'ai beaucoup de lacunes à combler concernant Listbox et manipulation des arrays.
J'ai fait le fichier joint juste pour illustrer la problématique. Via combobox1 la listbox1 est alimentée (4 colonnes).
Je voudrai créer un array contenant le même nombre de lignes que la listbox et 1 colonne de plus que la listbox (soit 5). Ensuite boucler sur toutes les lignes et colonnes de la listbox pour peupler L'array tout en ajoutant à chaque ligne le contenu de la combobox. Puis copier cet array sur la feuille2 juste pour vérifier qu'il y a pas d'erreur.
exemple résultat pour B1
1630479157827.png

En utilisant Tb=Listbox1.List, J'obtiens un array dont la seconde dimension est 0 to 9 soit 10 colonnes dont beaucoup sont vides.
En espérant que j'ai été clair. Merci par avance.
 

Pièces jointes

  • Classeur_Exemple.xlsm
    26.3 KB · Affichages: 7
Solution
Bonjour @cp4
tu instancie une variable tableau
VB:
dim tablo

et tu la dimentionne avec le ".list" de la combobox ou listbox
VB:
tablo=listbox1.list ' si tu veux le tableau  de la liste
ou
listcount donne le nombre de ligne dans une listbox (EN BASE 1)
columncount donne le nombre de colonnes (EN BASE 1)
VB:
redim tablo(listbox.listcount-1,listbox1.columncount)
mais il te faut alimenter ce tableau par la suite avec ta listbox
Code:
for lig=0 to listbox.listcount-1
for col= 0 to listbox1.columncount-1
tablo(lig,col)=listbox1.list(lig,col)
next
next
et tu a ta colonne supplémentaire dans la variable tablo
pas compliqué 🤣

patricktoulon

XLDnaute Barbatruc
Bonjour @cp4
tu instancie une variable tableau
VB:
dim tablo

et tu la dimentionne avec le ".list" de la combobox ou listbox
VB:
tablo=listbox1.list ' si tu veux le tableau  de la liste
ou
listcount donne le nombre de ligne dans une listbox (EN BASE 1)
columncount donne le nombre de colonnes (EN BASE 1)
VB:
redim tablo(listbox.listcount-1,listbox1.columncount)
mais il te faut alimenter ce tableau par la suite avec ta listbox
Code:
for lig=0 to listbox.listcount-1
for col= 0 to listbox1.columncount-1
tablo(lig,col)=listbox1.list(lig,col)
next
next
et tu a ta colonne supplémentaire dans la variable tablo
pas compliqué 🤣
 

cp4

XLDnaute Barbatruc
Bonjour @cp4
tu instancie une variable tableau
VB:
dim tablo

et tu la dimentionne avec le ".list" de la combobox ou listbox
VB:
tablo=listbox1.list ' si tu veux le tableau  de la liste
ou
listcount donne le nombre de ligne dans une listbox (EN BASE 1)
columncount donne le nombre de colonnes (EN BASE 1)
VB:
redim tablo(listbox.listcount-1,listbox1.columncount)
mais il te faut alimenter ce tableau par la suite avec ta listbox
Code:
for lig=0 to listbox.listcount-1
for col= 0 to listbox1.columncount-1
tablo(lig,col)=listbox1.list(lig,col)
next
next
et tu a ta colonne supplémentaire dans la variable tablo
pas compliqué 🤣
Bonjour @patricktoulon ;),

Je te remercie beaucoup. Je me suis en effet mêlé les pinceaux entre les différentes dimensions et les bases.
C'est plus clair, j'espère m'en souvenir vu que ma mémoire devient défaillante de jour en jour.
Encore merci. Bonne journée.
 

Discussions similaires

Réponses
9
Affichages
901