Bonjour,
voilà je réitère ma demande, car j'ai oublié de préciser que lorsque je
filtre sur ma feuille, cela fonctionne très bien, en revanche, quand je
passe par un listbox, cela fonctionne très bien, sauf lorsqu'il y a un seul
enregistrement.
il me dit erreur d'exécution 381.Impossible de définir la propriété
List.index de table de propriété non valide.
cela plante au niveau de .List = myArray
Merci
Alain
Sheets("Tableau").Select
Range("A1:M400").Select
Selection.AutoFilter Field:=2, Criteria1:=Label9
myArray =
Sheets("Tableau").Range("C2:C300").SpecialCells(xlCellTypeVisible).Value
With Me.ListBox1
.List = myArray
End With
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Alain,
La propriété List de l'objet ListBox requiert non pas une valeur d'une cellule mais un tableau. Ce tableau peut être d'une dimension ou de 2 dimensions. La valeur d'une seule cellule ne peut être considéré comme un tableau. De plus, pour pouvoir utiliser le type de procédure que tu soumets, il faudrait que la plage de résultat du filtre automatique soit en continue C2:C6 ...et non (C2,C4,C6) et le résultat du filtre automatique ne peut pas garantir que tu obtiendras toujours une plage de cellules en continu. Je suppose donc que la procédure doit se planter même si tu as plus d'un enregistrement comme résultat de ton filtre. Il s'agit simplement qu'au moins une cellule ne soit pas en continu dans la plage de résultat.
Tu pourrais plutôt utiliser quelque chose dans le genre : '--------------------------- Dim Rg As Range
'Ligne de code de ton filtre automatique ...
On Error Resume Next Set Rg = Range("A1:A10").SpecialCells(xlCellTypeConstants) If Not Rg Is Nothing Then With Me.ListBox1 .Clear For Each c In Rg .AddItem c.Value Next End With Else On Error GoTo 0 MsgBox "Aucun enregistrement de trouvé !" End If '---------------------------
Salutations!
"Alain" a écrit dans le message de news: Bonjour, voilà je réitère ma demande, car j'ai oublié de préciser que lorsque je filtre sur ma feuille, cela fonctionne très bien, en revanche, quand je passe par un listbox, cela fonctionne très bien, sauf lorsqu'il y a un seul enregistrement. il me dit erreur d'exécution 381.Impossible de définir la propriété List.index de table de propriété non valide. cela plante au niveau de .List = myArray Merci Alain
Sheets("Tableau").Select Range("A1:M400").Select Selection.AutoFilter Field:=2, Criteria1:=Label9 myArray Sheets("Tableau").Range("C2:C300").SpecialCells(xlCellTypeVisible).Value With Me.ListBox1 .List = myArray End With
Bonjour Alain,
La propriété List de l'objet ListBox requiert non pas une valeur d'une cellule mais un tableau. Ce tableau peut être
d'une dimension ou de 2 dimensions. La valeur d'une seule cellule ne peut être considéré comme un tableau. De plus, pour
pouvoir utiliser le type de procédure que tu soumets, il faudrait que la plage de résultat du filtre automatique soit en
continue C2:C6 ...et non (C2,C4,C6) et le résultat du filtre automatique ne peut pas garantir que tu obtiendras
toujours une plage de cellules en continu. Je suppose donc que la procédure doit se planter même si tu as plus d'un
enregistrement comme résultat de ton filtre. Il s'agit simplement qu'au moins une cellule ne soit pas en continu dans la
plage de résultat.
Tu pourrais plutôt utiliser quelque chose dans le genre :
'---------------------------
Dim Rg As Range
'Ligne de code de ton filtre automatique ...
On Error Resume Next
Set Rg = Range("A1:A10").SpecialCells(xlCellTypeConstants)
If Not Rg Is Nothing Then
With Me.ListBox1
.Clear
For Each c In Rg
.AddItem c.Value
Next
End With
Else
On Error GoTo 0
MsgBox "Aucun enregistrement de trouvé !"
End If
'---------------------------
Salutations!
"Alain" <alain@koala.com> a écrit dans le message de news:eDjiekxdEHA.1652@TK2MSFTNGP09.phx.gbl...
Bonjour,
voilà je réitère ma demande, car j'ai oublié de préciser que lorsque je
filtre sur ma feuille, cela fonctionne très bien, en revanche, quand je
passe par un listbox, cela fonctionne très bien, sauf lorsqu'il y a un seul
enregistrement.
il me dit erreur d'exécution 381.Impossible de définir la propriété
List.index de table de propriété non valide.
cela plante au niveau de .List = myArray
Merci
Alain
Sheets("Tableau").Select
Range("A1:M400").Select
Selection.AutoFilter Field:=2, Criteria1:=Label9
myArray Sheets("Tableau").Range("C2:C300").SpecialCells(xlCellTypeVisible).Value
With Me.ListBox1
.List = myArray
End With
La propriété List de l'objet ListBox requiert non pas une valeur d'une cellule mais un tableau. Ce tableau peut être d'une dimension ou de 2 dimensions. La valeur d'une seule cellule ne peut être considéré comme un tableau. De plus, pour pouvoir utiliser le type de procédure que tu soumets, il faudrait que la plage de résultat du filtre automatique soit en continue C2:C6 ...et non (C2,C4,C6) et le résultat du filtre automatique ne peut pas garantir que tu obtiendras toujours une plage de cellules en continu. Je suppose donc que la procédure doit se planter même si tu as plus d'un enregistrement comme résultat de ton filtre. Il s'agit simplement qu'au moins une cellule ne soit pas en continu dans la plage de résultat.
Tu pourrais plutôt utiliser quelque chose dans le genre : '--------------------------- Dim Rg As Range
'Ligne de code de ton filtre automatique ...
On Error Resume Next Set Rg = Range("A1:A10").SpecialCells(xlCellTypeConstants) If Not Rg Is Nothing Then With Me.ListBox1 .Clear For Each c In Rg .AddItem c.Value Next End With Else On Error GoTo 0 MsgBox "Aucun enregistrement de trouvé !" End If '---------------------------
Salutations!
"Alain" a écrit dans le message de news: Bonjour, voilà je réitère ma demande, car j'ai oublié de préciser que lorsque je filtre sur ma feuille, cela fonctionne très bien, en revanche, quand je passe par un listbox, cela fonctionne très bien, sauf lorsqu'il y a un seul enregistrement. il me dit erreur d'exécution 381.Impossible de définir la propriété List.index de table de propriété non valide. cela plante au niveau de .List = myArray Merci Alain
Sheets("Tableau").Select Range("A1:M400").Select Selection.AutoFilter Field:=2, Criteria1:=Label9 myArray Sheets("Tableau").Range("C2:C300").SpecialCells(xlCellTypeVisible).Value With Me.ListBox1 .List = myArray End With
Alain
Merci Denis, je teste et te réponds Alain
"michdenis" a écrit dans le message de news:O%
Bonjour Alain,
La propriété List de l'objet ListBox requiert non pas une valeur d'une cellule mais un tableau. Ce tableau peut être
d'une dimension ou de 2 dimensions. La valeur d'une seule cellule ne peut être considéré comme un tableau. De plus, pour
pouvoir utiliser le type de procédure que tu soumets, il faudrait que la plage de résultat du filtre automatique soit en
continue C2:C6 ...et non (C2,C4,C6) et le résultat du filtre automatique ne peut pas garantir que tu obtiendras
toujours une plage de cellules en continu. Je suppose donc que la procédure doit se planter même si tu as plus d'un
enregistrement comme résultat de ton filtre. Il s'agit simplement qu'au moins une cellule ne soit pas en continu dans la
plage de résultat.
Tu pourrais plutôt utiliser quelque chose dans le genre : '--------------------------- Dim Rg As Range
'Ligne de code de ton filtre automatique ...
On Error Resume Next Set Rg = Range("A1:A10").SpecialCells(xlCellTypeConstants) If Not Rg Is Nothing Then With Me.ListBox1 .Clear For Each c In Rg .AddItem c.Value Next End With Else On Error GoTo 0 MsgBox "Aucun enregistrement de trouvé !" End If '---------------------------
Salutations!
"Alain" a écrit dans le message de news:
Bonjour, voilà je réitère ma demande, car j'ai oublié de préciser que lorsque je filtre sur ma feuille, cela fonctionne très bien, en revanche, quand je passe par un listbox, cela fonctionne très bien, sauf lorsqu'il y a un seul
enregistrement. il me dit erreur d'exécution 381.Impossible de définir la propriété List.index de table de propriété non valide. cela plante au niveau de .List = myArray Merci Alain
Sheets("Tableau").Select Range("A1:M400").Select Selection.AutoFilter Field:=2, Criteria1:=Label9 myArray > Sheets("Tableau").Range("C2:C300").SpecialCells(xlCellTypeVisible).Value With Me.ListBox1 .List = myArray End With
Merci Denis, je teste et te réponds
Alain
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:O%23TdcFzdEHA.2384@TK2MSFTNGP09.phx.gbl...
Bonjour Alain,
La propriété List de l'objet ListBox requiert non pas une valeur d'une
cellule mais un tableau. Ce tableau peut être
d'une dimension ou de 2 dimensions. La valeur d'une seule cellule ne peut
être considéré comme un tableau. De plus, pour
pouvoir utiliser le type de procédure que tu soumets, il faudrait que la
plage de résultat du filtre automatique soit en
continue C2:C6 ...et non (C2,C4,C6) et le résultat du filtre automatique
ne peut pas garantir que tu obtiendras
toujours une plage de cellules en continu. Je suppose donc que la
procédure doit se planter même si tu as plus d'un
enregistrement comme résultat de ton filtre. Il s'agit simplement qu'au
moins une cellule ne soit pas en continu dans la
plage de résultat.
Tu pourrais plutôt utiliser quelque chose dans le genre :
'---------------------------
Dim Rg As Range
'Ligne de code de ton filtre automatique ...
On Error Resume Next
Set Rg = Range("A1:A10").SpecialCells(xlCellTypeConstants)
If Not Rg Is Nothing Then
With Me.ListBox1
.Clear
For Each c In Rg
.AddItem c.Value
Next
End With
Else
On Error GoTo 0
MsgBox "Aucun enregistrement de trouvé !"
End If
'---------------------------
Salutations!
"Alain" <alain@koala.com> a écrit dans le message de
news:eDjiekxdEHA.1652@TK2MSFTNGP09.phx.gbl...
Bonjour,
voilà je réitère ma demande, car j'ai oublié de préciser que lorsque je
filtre sur ma feuille, cela fonctionne très bien, en revanche, quand je
passe par un listbox, cela fonctionne très bien, sauf lorsqu'il y a un
seul
enregistrement.
il me dit erreur d'exécution 381.Impossible de définir la propriété
List.index de table de propriété non valide.
cela plante au niveau de .List = myArray
Merci
Alain
Sheets("Tableau").Select
Range("A1:M400").Select
Selection.AutoFilter Field:=2, Criteria1:=Label9
myArray > Sheets("Tableau").Range("C2:C300").SpecialCells(xlCellTypeVisible).Value
With Me.ListBox1
.List = myArray
End With
La propriété List de l'objet ListBox requiert non pas une valeur d'une cellule mais un tableau. Ce tableau peut être
d'une dimension ou de 2 dimensions. La valeur d'une seule cellule ne peut être considéré comme un tableau. De plus, pour
pouvoir utiliser le type de procédure que tu soumets, il faudrait que la plage de résultat du filtre automatique soit en
continue C2:C6 ...et non (C2,C4,C6) et le résultat du filtre automatique ne peut pas garantir que tu obtiendras
toujours une plage de cellules en continu. Je suppose donc que la procédure doit se planter même si tu as plus d'un
enregistrement comme résultat de ton filtre. Il s'agit simplement qu'au moins une cellule ne soit pas en continu dans la
plage de résultat.
Tu pourrais plutôt utiliser quelque chose dans le genre : '--------------------------- Dim Rg As Range
'Ligne de code de ton filtre automatique ...
On Error Resume Next Set Rg = Range("A1:A10").SpecialCells(xlCellTypeConstants) If Not Rg Is Nothing Then With Me.ListBox1 .Clear For Each c In Rg .AddItem c.Value Next End With Else On Error GoTo 0 MsgBox "Aucun enregistrement de trouvé !" End If '---------------------------
Salutations!
"Alain" a écrit dans le message de news:
Bonjour, voilà je réitère ma demande, car j'ai oublié de préciser que lorsque je filtre sur ma feuille, cela fonctionne très bien, en revanche, quand je passe par un listbox, cela fonctionne très bien, sauf lorsqu'il y a un seul
enregistrement. il me dit erreur d'exécution 381.Impossible de définir la propriété List.index de table de propriété non valide. cela plante au niveau de .List = myArray Merci Alain
Sheets("Tableau").Select Range("A1:M400").Select Selection.AutoFilter Field:=2, Criteria1:=Label9 myArray > Sheets("Tableau").Range("C2:C300").SpecialCells(xlCellTypeVisible).Value With Me.ListBox1 .List = myArray End With
Alain
En fait Denis,je te ré-expose mon pb J'ai un tableau de A2: H300 Dans le Workbook_Open une proc me trie le tableau J'ai un ComboBox3 dans lequel je choisis un nom, puis ce nom devient le critère de filtre. Je souhaite que les lignes filtrées (visibles) aillent dans listbox1 Cela fonctionne mais dès que le résultat du filtre est égal à un enregistrement, cela plante. Effectivement ton explication est très claire, mais je n'arrive pas à adapter ta proc. J'ai l'impression que je vais encore passer une nuit blanche ;-) Alain
"michdenis" a écrit dans le message de news:O%
Bonjour Alain,
La propriété List de l'objet ListBox requiert non pas une valeur d'une cellule mais un tableau. Ce tableau peut être
d'une dimension ou de 2 dimensions. La valeur d'une seule cellule ne peut être considéré comme un tableau. De plus, pour
pouvoir utiliser le type de procédure que tu soumets, il faudrait que la plage de résultat du filtre automatique soit en
continue C2:C6 ...et non (C2,C4,C6) et le résultat du filtre automatique ne peut pas garantir que tu obtiendras
toujours une plage de cellules en continu. Je suppose donc que la procédure doit se planter même si tu as plus d'un
enregistrement comme résultat de ton filtre. Il s'agit simplement qu'au moins une cellule ne soit pas en continu dans la
plage de résultat.
Tu pourrais plutôt utiliser quelque chose dans le genre : '--------------------------- Dim Rg As Range
'Ligne de code de ton filtre automatique ...
On Error Resume Next Set Rg = Range("A1:A10").SpecialCells(xlCellTypeConstants) If Not Rg Is Nothing Then With Me.ListBox1 .Clear For Each c In Rg .AddItem c.Value Next End With Else On Error GoTo 0 MsgBox "Aucun enregistrement de trouvé !" End If '---------------------------
Salutations!
"Alain" a écrit dans le message de news:
Bonjour, voilà je réitère ma demande, car j'ai oublié de préciser que lorsque je filtre sur ma feuille, cela fonctionne très bien, en revanche, quand je passe par un listbox, cela fonctionne très bien, sauf lorsqu'il y a un seul
enregistrement. il me dit erreur d'exécution 381.Impossible de définir la propriété List.index de table de propriété non valide. cela plante au niveau de .List = myArray Merci Alain
Sheets("Tableau").Select Range("A1:M400").Select Selection.AutoFilter Field:=2, Criteria1:=Label9 myArray > Sheets("Tableau").Range("C2:C300").SpecialCells(xlCellTypeVisible).Value With Me.ListBox1 .List = myArray End With
En fait Denis,je te ré-expose mon pb
J'ai un tableau de A2: H300
Dans le Workbook_Open une proc me trie le tableau
J'ai un ComboBox3 dans lequel je choisis un nom, puis ce nom devient le
critère de filtre. Je souhaite que les lignes filtrées (visibles) aillent
dans listbox1
Cela fonctionne mais dès que le résultat du filtre est égal à un
enregistrement, cela plante.
Effectivement ton explication est très claire, mais je n'arrive pas à
adapter ta proc.
J'ai l'impression que je vais encore passer une nuit blanche ;-)
Alain
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:O%23TdcFzdEHA.2384@TK2MSFTNGP09.phx.gbl...
Bonjour Alain,
La propriété List de l'objet ListBox requiert non pas une valeur d'une
cellule mais un tableau. Ce tableau peut être
d'une dimension ou de 2 dimensions. La valeur d'une seule cellule ne peut
être considéré comme un tableau. De plus, pour
pouvoir utiliser le type de procédure que tu soumets, il faudrait que la
plage de résultat du filtre automatique soit en
continue C2:C6 ...et non (C2,C4,C6) et le résultat du filtre automatique
ne peut pas garantir que tu obtiendras
toujours une plage de cellules en continu. Je suppose donc que la
procédure doit se planter même si tu as plus d'un
enregistrement comme résultat de ton filtre. Il s'agit simplement qu'au
moins une cellule ne soit pas en continu dans la
plage de résultat.
Tu pourrais plutôt utiliser quelque chose dans le genre :
'---------------------------
Dim Rg As Range
'Ligne de code de ton filtre automatique ...
On Error Resume Next
Set Rg = Range("A1:A10").SpecialCells(xlCellTypeConstants)
If Not Rg Is Nothing Then
With Me.ListBox1
.Clear
For Each c In Rg
.AddItem c.Value
Next
End With
Else
On Error GoTo 0
MsgBox "Aucun enregistrement de trouvé !"
End If
'---------------------------
Salutations!
"Alain" <alain@koala.com> a écrit dans le message de
news:eDjiekxdEHA.1652@TK2MSFTNGP09.phx.gbl...
Bonjour,
voilà je réitère ma demande, car j'ai oublié de préciser que lorsque je
filtre sur ma feuille, cela fonctionne très bien, en revanche, quand je
passe par un listbox, cela fonctionne très bien, sauf lorsqu'il y a un
seul
enregistrement.
il me dit erreur d'exécution 381.Impossible de définir la propriété
List.index de table de propriété non valide.
cela plante au niveau de .List = myArray
Merci
Alain
Sheets("Tableau").Select
Range("A1:M400").Select
Selection.AutoFilter Field:=2, Criteria1:=Label9
myArray > Sheets("Tableau").Range("C2:C300").SpecialCells(xlCellTypeVisible).Value
With Me.ListBox1
.List = myArray
End With
En fait Denis,je te ré-expose mon pb J'ai un tableau de A2: H300 Dans le Workbook_Open une proc me trie le tableau J'ai un ComboBox3 dans lequel je choisis un nom, puis ce nom devient le critère de filtre. Je souhaite que les lignes filtrées (visibles) aillent dans listbox1 Cela fonctionne mais dès que le résultat du filtre est égal à un enregistrement, cela plante. Effectivement ton explication est très claire, mais je n'arrive pas à adapter ta proc. J'ai l'impression que je vais encore passer une nuit blanche ;-) Alain
"michdenis" a écrit dans le message de news:O%
Bonjour Alain,
La propriété List de l'objet ListBox requiert non pas une valeur d'une cellule mais un tableau. Ce tableau peut être
d'une dimension ou de 2 dimensions. La valeur d'une seule cellule ne peut être considéré comme un tableau. De plus, pour
pouvoir utiliser le type de procédure que tu soumets, il faudrait que la plage de résultat du filtre automatique soit en
continue C2:C6 ...et non (C2,C4,C6) et le résultat du filtre automatique ne peut pas garantir que tu obtiendras
toujours une plage de cellules en continu. Je suppose donc que la procédure doit se planter même si tu as plus d'un
enregistrement comme résultat de ton filtre. Il s'agit simplement qu'au moins une cellule ne soit pas en continu dans la
plage de résultat.
Tu pourrais plutôt utiliser quelque chose dans le genre : '--------------------------- Dim Rg As Range
'Ligne de code de ton filtre automatique ...
On Error Resume Next Set Rg = Range("A1:A10").SpecialCells(xlCellTypeConstants) If Not Rg Is Nothing Then With Me.ListBox1 .Clear For Each c In Rg .AddItem c.Value Next End With Else On Error GoTo 0 MsgBox "Aucun enregistrement de trouvé !" End If '---------------------------
Salutations!
"Alain" a écrit dans le message de news:
Bonjour, voilà je réitère ma demande, car j'ai oublié de préciser que lorsque je filtre sur ma feuille, cela fonctionne très bien, en revanche, quand je passe par un listbox, cela fonctionne très bien, sauf lorsqu'il y a un seul
enregistrement. il me dit erreur d'exécution 381.Impossible de définir la propriété List.index de table de propriété non valide. cela plante au niveau de .List = myArray Merci Alain
Sheets("Tableau").Select Range("A1:M400").Select Selection.AutoFilter Field:=2, Criteria1:=Label9 myArray > Sheets("Tableau").Range("C2:C300").SpecialCells(xlCellTypeVisible).Value With Me.ListBox1 .List = myArray End With