2017-08-08 3 views

Répondre

4

Vous pouvez utiliser le SpecialCells(xlCellTypeVisible) pour obtenir les lignes filtrées:

Dim Tbl As Range 

Set Tbl = ActiveSheet.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible) 
' for DEBUG onlu 
Debug.Print Tbl.Address 

Modifier 1: code complet

Option Explicit 

Sub VarfiltRange() 

Dim BasketCostFiltRng As Range 
Dim LastRow As Long 
Dim VarRes As Double 

With Worksheets("Sheet1") '< -- modift "Sheet1" to your sheet's name 
    LastRow = .Cells(.Rows.Count, "D").End(xlUp).Row 

    ' get only the filteres rows in column D 
    Set BasketCostFiltRng = .Range("D2:D" & LastRow).SpecialCells(xlCellTypeVisible) 

    ' get the variance of only visible cells in Column "D" (after you filter to show only 1100 and 1112 in column "A") 
    VarRes = WorksheetFunction.Var(BasketCostFiltRng) 
    MsgBox VarRes 
End With 

End Sub 
+0

Ok et maintenant j'ai objet qui contient toutes les informations de ce cellules, comment je peux obtenir la valeur? J'ai besoin de ces données pour calculer la variance de chaque mois. –

+1

@KamilZawistowski Vous pouvez le lire dans un tableau, mais pour cela, vous devez partager vos données de feuilles de calcul, afin que nous puissions mieux comprendre –

+0

drive.google.com/open?id=0B5PmrbRk4Uarai1fQk9SLWNrb1U là vous avez un exemple de classeur. Disons que je veux le client de filer non. 1126 et 1100 dans la feuille de calcul "Zakupy" et ensuite je veux calculer la variance du coût du panier. –

2

Vous Californie n utiliser le SpecialCells pour obtenir que:

Sheet1.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Address 
+0

Juste quelques secondes après moi ... vous étiez caché pour celui-ci;) –