Impossible de définir la propriété list valeur de propriété non valide

Bonjour tout est dans le titre: impossible de définir la propriété list valeur de propriété non valide

voici la partie de code qui me pose soucis:

Sub controle()

    Dim source As Range
    Dim dest As Variant
    Dim index_row As Integer
    Dim index_row_dest As Integer
    Dim op As String
    Dim controleur As String
    Dim date_controle As Date
    Dim numcmd As String
    Dim vol As String
    Dim mel As String
    Dim qtéctrl As Integer
    Dim qtémauv As Integer
    Dim typdef As String
    Dim obs As String
    Dim ctrltr As Variant
    Dim ctrlcen As String
    Dim mille As String
    Dim client As String
    Dim filtreclient As String
    '
    Dim filtreop_ok As Boolean
    Dim filtrevol_ok As Boolean
    Dim filtremel_ok As Boolean
    Dim filtreclient_ok As Boolean
    Dim tableau()

    Sheets("Controle").Select
    If Range("A2").Value <> "" Then

        Set source = Sheets("Controle").Range("Tableaucontrole")
        Set dest = Me.L_controle

        dest.Clear
        dest.ColumnCount = 14
        index_row_dest = 0

        'on lit la source

        For index_row = 1 To source.Rows.Count
                date_controle = Format(source.Cells(index_row, 1))
                controleur = source.Cells(index_row, 2)
                numcmd = source.Cells(index_row, 3)
                vol = source.Cells(index_row, 4)
                mel = source.Cells(index_row, 5)
                op = source.Cells(index_row, 6)
                qtéctrl = source.Cells(index_row, 7)
                qtémauv = source.Cells(index_row, 8)
                typdef = source.Cells(index_row, 9)
                obs = source.Cells(index_row, 10)
                ctrltr = source.Cells(index_row, 11)
                ctrlcen = source.Cells(index_row, 12)
                mille = source.Cells(index_row, 13)
                client = source.Cells(index_row, 14)

                'on test les criteres de selection
                filtreop_ok = False
                If C_filtreop = "" Or C_filtreop = op Then
                filtreop_ok = True
                End If

                filtrevol_ok = False
                If C_filtrevol = "" Or C_filtrevol = vol Then
                filtrevol_ok = True
                End If

                filtremel_ok = False
                If C_filtrmel = "" Or C_filtrmel = mel Then
                filtremel_ok = True
                End If

                filtreclient_ok = False
                If C_filtreclient = "" Or C_filtreclient = client Then
                filtreclient_ok = True
                End If

                'si tous les criteres sont bon on écrit dans le tableau

                If filtreop_ok = True And filtrevol_ok = True And filtremel_ok = True And filtreclient_ok = True Then

                            dest.AddItem
                            dest.List(index_row_dest, 0) = date_controle
                            dest.List(index_row_dest, 1) = controleur
                            dest.List(index_row_dest, 2) = numcmd
                            dest.List(index_row_dest, 3) = vol
                            dest.List(index_row_dest, 4) = mel
                            dest.List(index_row_dest, 5) = op
                            dest.List(index_row_dest, 6) = qtéctrl
                            dest.List(index_row_dest, 7) = qtémauv
                            dest.List(index_row_dest, 8) = typdef
                            dest.List(index_row_dest, 9) = obs
                            dest.List(index_row_dest, 10) = ctrltr
                            dest.List(index_row_dest, 11) = ctrlcen
                            dest.List(index_row_dest, 12) = mille
                            dest.List(index_row_dest, 13) = client

                            index_row_dest = index_row_dest + 1
                End If

            Next index_row

        End If

End Sub

et c'est à partir de

dest.List(index_row_dest, 10) = ctrltr
                            dest.List(index_row_dest, 11) = ctrlcen
                            dest.List(index_row_dest, 12) = mille
                            dest.List(index_row_dest, 13) = client

par contre si je change par

dest.List(index_row_dest, 9) = ctrltr

ca fonctionne alors que mon L_control.columncount est bien à 14.

lien fichier: https://drive.google.com/file/d/1LKgKGhh_zgES7FqvetFO4-frY87frLEy/view?usp=sharing

Merci a vous

Bonjour,

j'ai rencontré le même problème hier, j'ai passé certains forum et trouvé l'information suivante:

apparemment cette méthode d'ajout limite la liste à 10 colonnes maximum...

Indépendamment de si on a mis 14 colonnes en column.count

Le seul moyen qui semble marcher ressemble à:

On peut aussi utiliser un tableau VBA:

malheureusement ni l'une ni l'autre ne va:

la première on est obligé de mettre toutes les lignes alors que je fais un tri

la deuxieme on doit fixer une valeur de tableau pour le nombre de ligne sauf que mon tableau est évolutif.

merci a toi

malheureusement ni l'une ni l'autre ne va:

la première on est obligé de mettre toutes les lignes alors que je fais un tri

la deuxieme on doit fixer une valeur de tableau pour le nombre de ligne sauf que mon tableau est évolutif.

merci a toi

Bonjour,

pour l'exemple j'ai mis un tableau de dimensions fixes, on peut très bien faire un tableau aux dimensions variables, ta seule question était de débuguer ton problème, pas de faire un cours sur les tableaux VBA, pour utiliser un tableau de dimensions variables, dirige toi sur la fonction ReDim: https://docs.microsoft.com/fr-fr/dotnet/visual-basic/language-reference/statements/redim-statement

Rechercher des sujets similaires à "impossible definir propriete list valeur valide"