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

Messages postés
13
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
28 juillet 2009
- - Dernière réponse :  4zoeils - 20 nov. 2010 à 20:24
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
Afficher la suite 

20/21 réponses

Meilleure réponse
Messages postés
24627
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
2 novembre 2019
4856
25
Merci
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

Dire « Merci » 25

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

CCM 69611 internautes nous ont dit merci ce mois-ci

Mabelle60
Messages postés
476
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
21 juin 2017
116 -
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
86
5
Merci
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
2
Merci
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
1
Merci
ou ex
a3 = 10
a4= 10
a5= 10

a6= 10

= 20 en prenant compte que la cellules a4 et a5 sont masquées
leplot
Messages postés
191
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
13 août 2015
86 -
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.

leplot
Messages postés
191
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
13 août 2015
86 > leplot
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.
leplot
Messages postés
191
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
13 août 2015
86 > leplot
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.
Messages postés
24627
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
2 novembre 2019
4856
0
Merci
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
pitfran
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
24627
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
2 novembre 2019
4856
0
Merci
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
pitfran
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
0
Merci
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
24627
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
2 novembre 2019
4856
0
Merci
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
476
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
21 juin 2017
116
0
Merci
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...
leplot
Messages postés
191
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
13 août 2015
86 -
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
0
Merci
code 109 ne fonctionne pas avec excel 2003. Je viens juste d'essayer
Vaucluse
Messages postés
24627
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
2 novembre 2019
4856 -
Ah???????
Messages postés
16963
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
31 octobre 2019
3652
0
Merci
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
24627
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
2 novembre 2019
4856
0
Merci
Ah!!!!!!!
Mike-31
Messages postés
16963
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
31 octobre 2019
3652 -
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
0
Merci
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 ?
Vaucluse
Messages postés
24627
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
2 novembre 2019
4856 -
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
86
0
Merci
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
0
Merci
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
24627
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
2 novembre 2019
4856
0
Merci
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
8713
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
27 janvier 2014
1008
0
Merci
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
86
0
Merci
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
8713
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
27 janvier 2014
1008
0
Merci
Rectification,
la formule.. =SOMME(TAB.FILTRE(B1:B20;VRAI))
Et ne se met à jour qu'après recalcul.
0
Merci
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