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