Comment copier des données au delà de 10 colonne d'une listebox1 a une autr

Bonsoir a tous!!

Je sollicite un coup de main pour un petit programme que je suis en train d'élaborer.

En effet je veux copié les données de ma listebox1(liste_avabt_metre) vers ma listebox2 (list_des_taches). Ma listeboxe1 est composé de 12 colonnes. Quand j'ajoute les données de ma listebox1 vers ma listeboxe2, les colonne 10, 11, 12 ne s'affichent pas. Quelqu'un saurait il m'aider svp? MERCI

Voici le bout de code élaboré

code

Bonsoir,

la fonction Add Item d'une ListBox est limité à l'index 9 je crois ou un truc du genre.
Pour remplir au delà de ces limites il faut la remplir "d'un seul coup" en lui attribuant un tableau.
Donc une boucle ou autre pour créer le tableau avec vos 12 colonnes, puis vous injectez ce tableau à votre ListBox.

Après je raconte peut-être des bêtises, mais je sais qu'il y a une histoire comme ça...

@ bientôt

LouReeD

Bonjour,

Salut LouReeD. Tu as parfaitement raison. Il y a bien une limitation à 9 colonnes. La seule façon de remplir 10 colonnes ou plus, est d'utiliser les instructions ".List" et ".Column" avec chargement d'un tableau. Dans le cas ici, exemple de code :

Private Sub ajout_Click()
    Dim i As Integer, i1 As Integer, c As Integer
    Dim tb_liste(), tb_ajout(), tb_combiné(), tb_tache()
    Dim tb

    With Me.liste_avant_metre
        tb_liste = .List

        i1 = 0
        For i = 0 To .ListCount - 1

            If .Selected(i) Then
                ReDim Preserve tb_ajout(.ColumnCount - 1, i1)
                For c = 0 To .ColumnCount - 1
                    tb_ajout(c, i1) = tb_liste(i, c)
                Next c

                i1 = i1 + 1
            End If

        Next i
    End With

    With Me.List_des_taches
        If .ListCount > 0 Then
            tb = .Column: tb_combiné = Array(tb, tb_ajout)
        Else
            tb_combiné = Array(tb_ajout)
        End If

        i1 = 0
        For Each tb In tb_combiné
            For i = 0 To UBound(tb, 2)
                ReDim Preserve tb_tache(.ColumnCount - 1, i1)
                For c = 0 To UBound(tb, 1)
                    tb_tache(c, i1) = tb(c, i)
                Next c
                i1 = i1 + 1

            Next i
        Next tb

        .Column = tb_tache
    End With

End Sub

Bonsoir,

merci thev ! J'ai eu un manque de motivation pour écrire le code !

@ bientôt

LouReeD

Rechercher des sujets similaires à "comment copier donnees colonne listebox1 autr"