Skip to content

Somme plage visible (ou filtrée) dans une feuille de calcul Excel

Solution:

Cela fera ce que vous voulez. Définissez visibleTotal sur le type de données approprié pour le total et modifiez les objets ws et rng pour qu’ils correspondent à ce que vous avez dans votre classeur.

Sub SumVisible()
    Dim ws As Worksheet
    Dim rng As Range
    Dim visibleTotal As Long

    Set ws = ThisWorkbook.Sheets("Sheet1")
    Set rng = ws.Range("B1:B7")

    ws.AutoFilterMode = False
    rng.AutoFilter field:=1, Criteria1:=5

    visibleTotal = Application.WorksheetFunction.Sum(rng.SpecialCells(xlCellTypeVisible))
    ' print to the immediate window
    Debug.Print visibleTotal
End Sub

Si vous ne souhaitez additionner qu’une partie de la plage filtrée (par exemple, vous filtrez sur la colonne A mais souhaitez la somme de la colonne B), consultez cette question et réponse : Copier/Coller/Calculer les cellules visibles à partir d’une colonne d’un tableau filtré.

Si l’on doit COMPTER le nombre d’éléments visibles dans une liste filtrée, utilisez la fonction SOUS-TOTAL, qui ignore automatiquement les lignes masquées par un filtre.

La fonction SOUS-TOTAL peut effectuer des calculs tels que COUNT, SUM, MAX, MIN, AVERAGE, PRODUCT et bien d’autres (voir le tableau ci-dessous). Il ignore automatiquement les éléments qui ne sont pas visibles dans une liste ou un tableau filtré. Cela le rend idéal pour afficher le nombre d’éléments visibles dans une liste, le sous-total des lignes visibles, etc. Il fournit également des lignes de contrôle masquées manuellement.

La solution à votre question serait de compter le nombre de lignes non vides visibles dans la colonne A et la colonne B lorsqu’un filtre est actif, utilisez :

AtmCurrentSum = Application.WorksheetFunction.Subtotal(109, Range("$X$3:$X$4533"))

Arguments de formule de sous-total Excel


Points à retenir lorsque vous appliquez la formule SOUS-TOTAL :

  • Lorsque num_fonction (premier argument) est compris entre 1 et 11, SOUS-TOTAL inclut des valeurs masquées manuellement mais ignorées par filtre.
  • Lorsque num_fonction est compris entre 101 et 111, SOUS-TOTAL exclut toutes sortes de valeurs cachées.
  • Dans les listes filtrées, SUBTOTAL ignore toujours les valeurs des lignes masquées, quel que soit le nombre_fonction.
  • SOUS-TOTAL ignore les autres sous-totaux qui existent dans les références sont ignorés pour éviter le double comptage
  • SOUS-TOTAL ne fonctionne qu’avec des valeurs de données verticales disposées verticalement.
  • Dans les colonnes horizontales cachées, les valeurs sont toujours incluses et jamais ignorées.


Tags : / /

Articles Similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.