Utiliser SOUSTOTAL avec sommesi et sommeprod

Bonjour,

J'aimerais pouvoir incorporer la forume SOUSTOTAL dans mes deux colonnes TOTAL QTT (qui contient déjà SOMMEPROD) et COÛTS (qui contient SOMMESI) à droite afin que les cellules cachées ne soient plus prises en compte dans les calculs. Le problème est que je ne sais pas comment faire fonctionner les deux, une âme éclairée pourrait me conseiller SVP ?

Je joins le fichier à ce post.

10exemple.xlsx (15.96 Ko)

Un grand merci :)

Bonjour,

J'allais proposer une solution avec SOUSTOTAL, avant de me rappeler que ce n'était compatible qu'avec les filtres, donc ça n'aurait pas marché si on avait choisi de masquer des colonnes par exemple...

J'ai donc fait une petite fonction VBA qui permet de savoir si un ensemble de cellule est visible ou non.

6exemple-5.xlsm (22.04 Ko)

Petit inconvénient: masquer des lignes ou des colonnes ne relance pas le calcul du classeur, il faut donc bien penser à recalculer.

Le code:

Function f_visible(Plage As Range) As Variant
Dim tableau As Variant

Application.Volatile
ReDim tableau(1 To Plage.Rows.Count, 1 To Plage.Columns.Count)

For i = 1 To UBound(tableau, 1)
    For j = 1 To UBound(tableau, 2)
        tableau(i, j) = Not (Plage.Cells(i, j).EntireRow.Hidden Or Plage.Cells(i, j).EntireColumn.Hidden)
    Next j
Next i

f_visible = tableau
End Function

Bonjour Ausecour,

Un grand merci pour ton aide.
Je pensais toutefois qu'il était possible d'utiliser SOUSTOTAL avec le code 109 (qui, si je ne me trompe pas, fonctionne sans les filtres, juste en cachant). Mais je me trompe peut-être.

En effet je n'avais pas vu le code 109, malheureusement il ne semble fonctionner que sur les lignes masquées manuellement ou filtrées, ça ne prend pas en compte les colonnes...

Votre souhait était bien de par exemple masquer la semaine du 3/04 au 7/04 et que le total s'adapte?

Oui effectivement c'était dans cette optique. Dommage que cela ne fonctionne pas avec les colonnes masquées manuellement

Sinon on peut envisager de transposer le tableau et là on peut utiliser le SOUSTOTAL

5exemple-5.xlsx (19.30 Ko)

C'est une bonne idée, je vais voir ce que cela donne sur le tableau entier en el transposant mais pas sûr que cela soit pratique avec ce format par la suite.

Sinon, pensez-vous qu'il serait possible de créer une commande (un bouton) qui pourrait directement effacer les donnée dans les colonnes "QTT" des jours souhaités ?

Exemple, je souhaite garder que la première semaine pour en faire une facture sur cette période, je clique sur un bouton en retrant les dates que je veux effacé et le total se racalcule automatiquement ?

Ca me semble plus compliqué à faire par rapport à la petite fonction que j'ai fait, et je ne suis pas trop fan d'effacer des données par VBA comme il n'y a aucun retour en arrière possible après...

Sinon j'ai une meilleur idée:

9exemple-6.xlsx (16.16 Ko)

J'ai rajouté une ligne pour avoir les dates (ligne 1) qui peut être masquée sans souci, elle sert à appliquer un critère de date pour les totaux, on peut ensuite dire qu'on veut faire le sous-total du 03/04/2023 au 07/04/2023 et les totaux vont s'adapter.

Rechercher des sujets similaires à "utiliser soustotal sommesi sommeprod"