Excel, bouton, filtre et moyenne

Résolu
dijkstra Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
ThauTheme Messages postés 1564 Statut Membre -
Bonjour,
aidez moi s'il vs plais
mon problème est le suivant; j'ai une base de données sur excel sur laquelle je veut effectuer un filtre et puis calculer la moyenne , les champs sur lesquels je veut filtrer sont dans une feuil2 de sorte qu'une fois je clique sur un bouton le filtrage se fait automatiquement, cepondant j'ai un message d'erreur qui s'affiche erreur d'execution1004 impossible de lire la propriété subtotal de la classe worksheetfunction

voici mon code
Sub filtrer()
Dim x As Double
For i = 4 To 6
Sheets("Casa-Fès").Activate
Range("A1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$I$20945").AutoFilter Field:=1, Criteria1:=Sheets("feuil2").Cells(i,1).Value
ActiveSheet.Range("$A$1:$I$20945").AutoFilter Field:=2, Criteria1:=Sheets("feuil2").Cells(i, 2).Value
ActiveSheet.Range("$A$1:$I$20945").AutoFilter Field:=3, Criteria1:=Sheets("feuil2").Cells(i, 3).Value
ActiveSheet.Range("$A$1:$I$20945").AutoFilter Field:=4, Criteria1:=Sheets("feuil2").Cells(i, 4).Value
ActiveSheet.Range("$A$1:$I$20945").AutoFilter Field:=6, Criteria1:=Sheets("feuil2").Cells(i, 5).Value
ActiveSheet.Range("$A$1:$I$20945").AutoFilter Field:=8, Criteria1:=Sheets("feuil2").Cells(i, 6).Value
x = WorksheetFunction.Subtotal(1, Sheets("Casa-Fès").Range("I:I"))
Sheets("feuil2").Select
Cells(i, 7).Value = x
Next i
End Sub


quelqu'un pourrait il m'aider ??

1 réponse

  1. ThauTheme Messages postés 1564 Statut Membre 160
     
    Bonsoir Dijkstra, bonsoir le forum,

    Peut-être comme ça (non testé) :

    Sub filtrer()
    Dim I As Byte
    Dim x As Double
    Dim PL As Range
    Dim PLV As Range
    
    Sheets("Casa-Fès").Activate
    Set PL = Range("I2:I20945")
    For I = 4 To 6
        Range("A1").Select
        Selection.AutoFilter
        ActiveSheet.Range("$A$1:$I$20945").AutoFilter Field:=1, Criteria1:=Sheets("feuil2").Cells(I, 1).Value
        ActiveSheet.Range("$A$1:$I$20945").AutoFilter Field:=2, Criteria1:=Sheets("feuil2").Cells(I, 2).Value
        ActiveSheet.Range("$A$1:$I$20945").AutoFilter Field:=3, Criteria1:=Sheets("feuil2").Cells(I, 3).Value
        ActiveSheet.Range("$A$1:$I$20945").AutoFilter Field:=4, Criteria1:=Sheets("feuil2").Cells(I, 4).Value
        ActiveSheet.Range("$A$1:$I$20945").AutoFilter Field:=6, Criteria1:=Sheets("feuil2").Cells(I, 5).Value
        ActiveSheet.Range("$A$1:$I$20945").AutoFilter Field:=8, Criteria1:=Sheets("feuil2").Cells(I, 6).Value
        'x = WorksheetFunction.Subtotal(1, Sheets("Casa-Fès").Range("I:I"))
        On Error Resume Next
        Set PLV = PL.SpecialCells(xlCellTypeVisible)
        If Err <> 0 Then
            MsgBox "Aucune cellule visible !"
            GoTo suite
        End If
        x = Application.WorksheetFunction.Sum(PLV)
        Sheets("feuil2").Cells(I, 7).Value = x
    suite:
    Next I
    End Sub


    Un petit coucou au Maroc cher à mon coeur...
    0
    1. 1yjw44i
       
      merci ThauTheme je vien de tester, ça marche, ci j'ai bien compris ce sont les valeurs qui n'existaient pas qui posaient problème n'est ce pas ?
      en tout cas merci bcp :)
      le Maroc vous salut aussi ^^
      0
      1. ThauTheme Messages postés 1564 Statut Membre 160 > 1yjw44i
         
        En fait je ne sais pas ou ets le problème. Mais comme je ne connaissais pas la fonction Subtotal, je l'ai remplacée la par somme des cellules visibles...
        0