W
Willy
Guest
Bonsoir à toutes et à tous,
J'étudie la manière de filtrer une liste par macro.
Le script suivant ( venant d'une démo de Thierry ) permet d'effectuer ce filtrage.
Mon problème est que j'essai d'effectuer ce filtrage à partir d'une autre feuille que celle contenant la liste et j'ai une erreur (1004)
j'ai beau tout passer en revue, je ne vois pas ou ca coince !
Le script fonctionne correctement bien sur si il est exécuté dans la feuille source.
Private Sub UserForm_Initialize()
Worksheets("feuil2").AutoFilterMode = False
Dim cell As Range
Dim r As Range
Dim i As Integer
Dim tabT() As String
Dim MaFeuille As Worksheet
Set MaFeuille = Worksheets("feuil2")
If MaFeuille.AutoFilterMode Then
MaFeuille.AutoFilterMode = False
MaFeuille.Range("A1").AutoFilter Field:=3, Criteria1:="OUI"
Else
MaFeuille.Range("A1").AutoFilter Field:=3, Criteria1:="OUI"
End If
Set r = MaFeuille.Range("A2", [A65536].End(xlUp))
Set r = r.SpecialCells(xlCellTypeVisible)
ReDim tabT(0 To r.Count - 1)
For Each cell In r
tabT(i) = cell.Value '''''''''''''
i = i + 1
Next
Me.ListBox1.List = tabT
Me.Label1.Caption = r.Count - 1
End Sub
Merci de votre aide
Bonne soirée au coin du feu ( Brrrrr chez moi il neige )
Willy
J'étudie la manière de filtrer une liste par macro.
Le script suivant ( venant d'une démo de Thierry ) permet d'effectuer ce filtrage.
Mon problème est que j'essai d'effectuer ce filtrage à partir d'une autre feuille que celle contenant la liste et j'ai une erreur (1004)
j'ai beau tout passer en revue, je ne vois pas ou ca coince !
Le script fonctionne correctement bien sur si il est exécuté dans la feuille source.
Private Sub UserForm_Initialize()
Worksheets("feuil2").AutoFilterMode = False
Dim cell As Range
Dim r As Range
Dim i As Integer
Dim tabT() As String
Dim MaFeuille As Worksheet
Set MaFeuille = Worksheets("feuil2")
If MaFeuille.AutoFilterMode Then
MaFeuille.AutoFilterMode = False
MaFeuille.Range("A1").AutoFilter Field:=3, Criteria1:="OUI"
Else
MaFeuille.Range("A1").AutoFilter Field:=3, Criteria1:="OUI"
End If
Set r = MaFeuille.Range("A2", [A65536].End(xlUp))
Set r = r.SpecialCells(xlCellTypeVisible)
ReDim tabT(0 To r.Count - 1)
For Each cell In r
tabT(i) = cell.Value '''''''''''''
i = i + 1
Next
Me.ListBox1.List = tabT
Me.Label1.Caption = r.Count - 1
End Sub
Merci de votre aide
Bonne soirée au coin du feu ( Brrrrr chez moi il neige )
Willy