Excel, bouton, filtre et moyenne

Résolu/Fermé
dijkstra Messages postés 1 Date d'inscription jeudi 1 janvier 2015 Statut Membre Dernière intervention 1 janvier 2015 - Modifié par jee pee le 1/01/2015 à 14:36
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 5 janv. 2015 à 00:21
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 ??
A voir également:

1 réponse

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
1 janv. 2015 à 21:09
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
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
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160 > 1yjw44i
5 janv. 2015 à 00:21
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