Sommer sans additionner les lignes masquées [Résolu/Fermé]

Signaler
Messages postés
13
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
28 juillet 2009
-
 4zoeils -
Bonjour,
Dans une colonne (excel 2003) j'ai plusieurs chiffres à additionner mais je ne souhaite pas additionner les cellules masquées . La formule Sous.total ne me donne que le nombre de cellule active tout comme NBVAL.
Quelle formule dois-je utilser
Merci

21 réponses

Messages postés
25248
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
29 août 2020
5 429
Voila qui va mieux:
essayez alors 109 à la place de 9 dans la fonction sous total:
=SOUS.TOTAL(109;A3:A25)
Ca devrait aller
Crdlmnt
26
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 61389 internautes nous ont dit merci ce mois-ci

Messages postés
469
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
21 juin 2017
122
Bonjour Vaucluse
Je croyais qu'il n'y avait que 11 paramètres dans cette fonction...
Ou puis je trouver les autres? Enfin, surtout à quoi ils servent...
Messages postés
191
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
13 août 2015
97
bonjour

Regarde l'aide de sous.total car elle permet également la somme avec l'option 9 je crois.
Messages postés
13
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
28 juillet 2009
3
L'option 9 permet effectivement d'additionner le total mais elle ne me soustrait pas les chiffres présents dans les lignes ou cellules masquées. j'avais déja essayé Merci car même..
Messages postés
13
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
28 juillet 2009
3
ou ex
a3 = 10
a4= 10
a5= 10

a6= 10

= 20 en prenant compte que la cellules a4 et a5 sont masquées
Messages postés
191
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
13 août 2015
97
Bonjour,

qu'entends-tu par "masquée" ?
* Ligne masquée manuellement ou par un filtre ?
* texte masqué par une police de couleur blanche ?
* propriété de la cellule sur masquée ? ce qui ne sert qu'à masquer la formule dans feuille protégée.

Seul le premier cas permet d'utiliser Sous.total
Dans les autres cas, il faudrait savoir ce qui définit qu'une cellule est masquée et utiliser cette définition comme test dans un somme.si ou sommeprod.

Messages postés
191
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
13 août 2015
97 >
Messages postés
191
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
13 août 2015

Re,

effectivement sous.total ne fonctionne qu'avec les filtre et non sur les lignes masquée manuellement. Toutes mes excuses.

Je te propose une fonction pour faire ce que tu veux : (à coller dans un module)
Function SommeSansMasquée(Plage As Range, Optional QueMasquée As Boolean = False)
    Dim C
    For Each C In Plage.Cells
        If C.EntireRow.Hidden = QueMasquée Then
            SommeSansMasquée = SommeSansMasquée + C.Value
        End If
    Next
End Function


SommeSansMasquée(plage, [Vrai/Faux par défaut])

L'utilisation est = SommeSansMasquée(plage) ==> somme des lignes non masquées
j'ai ajouté une option = SommeSansMasquée(plage,vrai ) ==> somme des lignes masquées
La première syntaxe correspond à = SommeSansMasquée(plage, faux) mais faux est optionnel.

J'espère que cela t'aidera à défaut de trouver une formule directemetn sous Excel.
Messages postés
191
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
13 août 2015
97 >
Messages postés
191
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
13 août 2015

J'apporte une modification à la fonction précédente
Function SommeSansMasquée(Plage As Range, Optional QueMasquée As Boolean = False)
    Dim C
    For Each C In Plage.Cells
        If QueMasquée Then
            If IsNumeric(C) And (C.EntireRow.Hidden = True Or C.EntireColumn.Hidden = True) Then
                SommeSansMasquée = SommeSansMasquée + C.Value
            End If
        Else
            If IsNumeric(C) And C.EntireRow.Hidden = False And C.EntireColumn.Hidden = False Then
                SommeSansMasquée = SommeSansMasquée + C.Value
            End If
        End If
    Next
End Function

Pour que cela fonctionne aussi bien sur des lignes ou des colonnes et même s'il y a du texte dans les cellules.

NB : il vaut mieux utiliser Sous.total (109;) si c'est posssible.
Désolé, que ce soit =SOMME(TAB.FILTRE(B1:B20) ou =SOMME(TAB.FILTRE(B1:B20;VRAI)) ça ne fonctionne pas mieux. Toujours le résultat "#valeur" il reste néanmoins la solution d'insérer un code dans un module standart.

Public Function SousTotal(Plage As Range)
Dim Cellule As Range
Application.Volatile
For Each Cellule In Plage
If Rows(Cellule.Row).Hidden = False Then
SousTotal = SousTotal + Cellule.Value
End If
Next Cellule
End Function

Mode d'utlisation
Code:
=SousTotal(F6:F32)

Mais ça ne soustrait pas automatiquement le résultat lorsque je masque des lignes. il me faut sélectionner à nouveau la plage de cellules affichées
Messages postés
25248
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
29 août 2020
5 429
Bonjour
"L'option 9 permet effectivement d'additionner le total mais elle ne me soustrait pas les chiffres présents dans les lignes ou cellules masquées."
....ce qui fait que l'on ne sait plus ce que vous cherchez.
Pouvez vous être plus précis.
La solution soustotal 9 donne la somme des cellules uniquement apparentes dans le cas d'un filtre par exemple.
Dans l'attente
Messages postés
13
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
28 juillet 2009
3
Je vais essayer d'être plus explicite

Dans la colonne A j'ai plusieurs chiffres à additionner ex: de A3à A25. Si j'effectue la formule Sous.total N9 celle ci va m'additionner la cellule A3 à A25 même si les cellules de A4 à A24 sont masquer. Dans cette exemple je souhaite que la formule n'additionne que la cellule A3 et A25 par exemple puisque les autres sont masquées.
J'espère avoir été plus clair.
Merci
Messages postés
25248
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
29 août 2020
5 429
Ca ne s'arrange pas, du moins pour moi....mais il y en aura surement d'autres plus performants:
Une cellule "Masquée" interdit de voir la formule qu'elle contient mais ne change rien aux calculs qu'elle effectue ni à ceux qui s'y rapportent, pas plus que le résultat qu'elle contient n'est masqué.
Il y a peut être d'autres options pour résoudre votre problème non?si vous nous dites précisément ce que vous voulez obtenir.. et surtout ce qui aboutit dans votre fichier à masquer une cellule.
Crdlmnt
Messages postés
13
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
28 juillet 2009
3
Ce n'est pas la cellules à proprement dit qui est masquées mais la ligne contenant le nombre dans une cellule qui est masquées en sélectionnant la cellules clique droit et sélection masquer.
Messages postés
13
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
28 juillet 2009
3
Ce n'est pas la cellules à proprement dit qui est masquées mais la ligne contenant le nombre dans une cellule qui est masquées en sélectionnant la lignes clique droit et sélection masquer.
Messages postés
25248
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
29 août 2020
5 429
Bonjour Mabelle
... et pourtant, elle tourne! :-)

Pour plus ample information (sur 2003, 2007 je ne sais pas):
Cliquer sur une cellule /Insertion / Fonction
Choisir SOUS TOTAL
Cliquer sur aide sur cette fonction
Voir le tableau des codes, ligne "Somme"
A priori 109 est équivalent à 9 sauf qu'il ne prend que les cellules visibles, comme pour tous les codes de 101 à 111
Bien cordialement
Messages postés
469
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
21 juin 2017
122
Bien vu...
Dans l'aide en ligne
1 à 9 compte aussi les lignes masquées (mais pas les filtrées)
101 à 109 ne compte pas les lignes masquées.
Par contre, après avoir testé, si on applique un filtre, la fonction se comporte comme avec la valeu 9.

Merci de m'avoir appris quelque chos aujourd'hui...
Messages postés
191
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
13 août 2015
97
Bonjour,

a priori cela ne fonctionne pas en Excel 2002, j'ai un #valeur!
mais c'est toujours bon à savoir.
Bonjour,

Si tu sélectionne ta plage de cellules (visibles et masquées) et que tu fais F5>cellules...>cellules visibles uniquement,
Tu peux sélectionner uniquement les cellules dont tu veux faire la somme.
Il faut ensuite que tu somme la sélection, peut être passer par un petit copier/coller, et tu as ta somme

J'espère avoir répondu à ta question
Messages postés
13
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
28 juillet 2009
3
code 109 ne fonctionne pas avec excel 2003. Je viens juste d'essayer
Messages postés
25248
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
29 août 2020
5 429
Ah???????
Messages postés
17189
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 septembre 2020
4 204
Salut tous,

Comme le dit Vaucluse et pourtant elle tourne !

=SOUS.TOTAL(109;A3:A25) avec excel 2003 marche bien eh oui !

A+
Messages postés
25248
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
29 août 2020
5 429
Ah!!!!!!!
Messages postés
17189
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 septembre 2020
4 204
Ah Aht Chouuuum !

Pourquoi tu tousses !
Messages postés
13
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
28 juillet 2009
3
j'ai excel 2003 au bureau et excel 2000 à la maison et dans les 2 cas la fonction =sous.total(109;b3:b20) ne fonctionnent; le résultat est #valeur. Et je n'ai toujours pas la réponse qui me permette d'additionner uniquement les lignes apparentes. Les lignes que j'ai masquées manuellement (clic droit sur la ligne, masquer) ne doivent pas être pris en compte. Est-ce seulement possible ?
Messages postés
25248
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
29 août 2020
5 429
Bonjour
Vous trouverez en cliquant sur le lien ci dessous l'exemple (EXCEL 2003) avec la fonction sous total 109 . Masquer les lignes que vous voulez pour voir que cela fonctionne.
Peut être y a t il un autre problème chez vous dans votre liste de nombre?pouvez vous la mettre à dispositgion pour que nous puissions l'examiner.
Crdlmnt
http://www.cijoint.fr/cjlink.php?file=cj200904/cijxLd932S.xls
Messages postés
191
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
13 août 2015
97
As-tu vu la solution que je te propose (post 17) ?
Messages postés
13
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
28 juillet 2009
3
Toujours pas de sang neuf, le lien je l'ai essayé et cela ne fonctionne pas non plus. Je masque les lignes et le résultat est le même (18). Est-ce qu'il me manque une option ou configuration sur ma version ?
Messages postés
25248
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
29 août 2020
5 429
Bonjour
ci dessous le fichier précdent (somme 18) avec quelques lignes masquées qui donne 12 en résultat
Votre problème devient incompréhensible, sauf peut être une vision différente de ce qu'on apelle "masquée" et ne peut se traiter qu'avec un exemple que vous devriez mettre à dispostion sur ci joint.com.

Crdlmnt

http://www.cijoint.fr/cjlink.php?file=cj200904/cij2q8FK8v.xls
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 102
Bonjour tous,
Pour les versions <2007 il faut probablement avoir un add-in supplémentaire, sur mon 2000 j'ai aussi #Valeur
par contre, sur le 2007 ça fonctionne comme préciser dans les postes précédant.
A+
EDIT:
Tant qu'a faire d'ajouter un add-in autant mettre MoreFunc (disponnible sur CCM) et ensuite la fonction...
=SOMME(TAB.FILTRE(B1:B20))
Fonctionne parfaitement sur le 2000
Merci. ca marche bien avec Excell 2000.
je voulais afficher le numéro de ligne avec un filtre pour un classement de course.
Messages postés
191
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
13 août 2015
97
Bonjour,

sur Excel 2002, effectivement le fichier affiche toujours 18 même si l'on masque des lignes.
Par contre dès qu'on fait recalculer la formule ==> #Valeur

Sous Excel 2003, sous.total(109...) fonctionne bien.

donc si tu as Excel 2002, il faut passer par une fonction pour faire la même chose (voir mon post 17).

LePlot
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 102
Rectification,
la formule.. =SOMME(TAB.FILTRE(B1:B20;VRAI))
Et ne se met à jour qu'après recalcul.