Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Sous.total selon critère sur liste filtrée

  • Initiateur de la discussion Initiateur de la discussion Compte Supprimé 979
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

Compte Supprimé 979

Guest
Bonjour à tous,

Quelqu'un connait-il une formule miracle pour faire le sous total (ou total) de lignes filtrées selon une condition

Je peux faire un truc en VBA 😛

Mais je me demandais si par formule ce n'étais pas possible 😕

Vois fichier joint pour une meilleur compréhension 😀

D'avance meri.

A+
 

Pièces jointes

Dernière modification par un modérateur:
Re : Sous.total selon critère sur liste filtrée

Bonjour ! j;ai ouvert un nouveaux sujet a ce propos pour 2 conditions
mais rien personne peut etr pourriez vous m'aider svp voici ci joint exactement ce que jai besoin !
merci encore
 

Pièces jointes

Re : Sous.total selon critère sur liste filtrée

Salut Bens7,

Peut-être avec une fonction personnalisée, tel que celle-ci
A mettre dans un module
VB:
Option Explicit


Function Calcul(Rng As Range, Quoi As String)

  Dim Col As Integer, ColDeb As Integer, NbCol As Integer
  Dim Lig As Long, LigDeb As Long, NbLig As Long
  Dim Tot As Integer, Mem As String
  Application.Volatile
  ' Initialisation des variables
  ColDeb = Rng.Column: NbCol = Rng.Columns.Count
  LigDeb = Rng.Row: NbLig = Rng.Rows.Count
  Tot = 0: Mem = ""
  ' Pour chaque colonne de la plage de cellules
  For Col = ColDeb To ColDeb + NbCol - 1
    ' Pour chaque ligne de la plage de cellules
    For Lig = LigDeb To LigDeb + NbLig - 1
      ' Si la cellule contient le terme cherché
      If Cells(Lig, Col).Value = Quoi Then
        ' On ajoute au total
        Tot = Tot + 1
        ' On mémorise la dernière valeur trouvée
        Mem = Cells(Lig, Col).Value
      ElseIf Cells(Lig, Col).Value <> "" Then
        ' Si la cellule n'est pas vide mais ne correspond pas
        ' On mémorise la dernière valeur trouvée
        Mem = Cells(Lig, Col).Value
      ElseIf Tot >= 1 And IsEmpty(Cells(Lig, Col)) And Mem = Quoi Then
        ' Si le total est >= 1
        ' et que la cellule est vide
        ' mais que la dernière valeur mémorisée correspond
        ' On ajoute au total
        Tot = Tot + 1
      End If
    Next Lig
  Next Col
  ' Renvoyer le total
  Calcul = Tot
End Function
 

Pièces jointes

Bonsoir,

Je déterre ce sujet car je cherchais la solution à mon problème de Sous-Total avec critère.
J'ai trouvé ici !

Donc simplement pour dire : Génial !

Et saluer les copains au passage, regrettant infiniment les absences de Tibo et Hoerwind..
Bien le bonjour à Job et Bruno.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
503
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…