Sous total sans prendre en compte de valeur en italique

Bonjour

Je souhaiterai connaitre une méthode afin de calculer un sous-total d'une colonne sans prendre en compte les valeurs inscrites manuellement en italique.

Je suis tombé sur un module qui fonctionne pour une somme mais je ne parviens pas à le transcrire avec un sous-total

Pour la somme : Function SommeNonItal(champ)

Application.Volatile

For Each c In champ

If Not c.Font.Italic Then temp = temp + c

Next

SommeNonItal = temp

End Function

Pour le sous-total ?

Merci d'avance,

Bonjour et bienvenue,

Cette fonction me semble fonctionnelle.

Voir fichier joint en c10

178exemple.xlsm (13.28 Ko)

Bonjour

Merci pour votre réactivité. Sauf que au lieu d'une formule avec "somme" il me faut une formule avec "sous.total" !

dans le cas présent SommeNonItal te sert à faire la somme des cellules qui ne sont pas en italique.

On peut l’interpréter autrement en disant que la fonction fait le sous.total de la plage pour les des cellules qui ne sont pas en italiques.

img1

Cordialement

c'est justement ce que je ne suis pas parvenu à faire ...

Ta fonction tu peux l'appeler autrement. Exception du même nom qu'une fonction excel.

Donc pas sous.total:)

img1

Vois le fichier modifié

36exemple.xlsm (13.70 Ko)

Est-ce que tu comprends mieux le rôle d'une fonction ?

Tu vois que les options de sous.total ne permettent pas de faire ce que tu demandes.

LA personne qui a créé la fonction l'a faite pour pallier à cette faiblesse si on peut dire.

img2

J'ai cru que ça fonctionnait mais en fait non ...

Je m'explique : si j'ai demandé la variante avec le sous-total, c'est dans le but d'appliquer des filtres à une deuxième colonne et ainsi n'avoir que le sous total associé au filtre et ce sans prendre en compte ces fameuses valeurs en italique ...

Tu as une idée ?

et pour ma gouverne, le "As Double" que tu as rajouté dans la macro signifie quoi ?

Alors pour le As Double ajouté, ça veut dire typer la fonction. Ainsi les résultats avec des chiffres décimaux sont acceptés.

Avant comme elle n'était pas typée elle était déclarée par défaut comme variant. Les déclarations de type variant sont celles qui requièrent le plus d'espace mémoire.

Pour le reste est-ce que tu peux fournir une fichier en expliquant le résultat attendu ?

Cordialement

OK merci pour l'explication du as double

voir en PJ pour l'exemple,

Si je filtre par la lettre a, je veux que le sous total fasse 17

27exemple.xlsm (15.23 Ko)

Ok, remplace la fonction par celle-ci.

Function SousTotal(champ) As Double
Application.Volatile
For Each c In champ
   If Not c.Font.Italic And Not c.EntireRow.Hidden Then temp = temp + c
Next
SousTotal = temp
End Function

cordialement

Ca fonctionne mais si je passe une valeur en italique ça ne change pas automaticement le sous total, je dois refaire entrée dans la cellule pour que ça recalcule ...

On y est presque !

Merci

c'est le rôle de Application.Volatile.

A chaque changement de cellule la feuille se recalcule.

Dans ton cas, tu changes le format ce qui n'est pas la même chose d'où pas de recalcul.

On peut mettre un bouton pour relancer la mise à jour mais je me demande si c'est mieux

Regarde le fichier ci-joint

cordialement

C'est pas mal, au moins ça attire l'attention

Parfait en tout cas, merci bcp !!

Ah et dernière question tout de même : est-ce que tu arriverais à ce que ça se calcule même s'il y a du texte dans la colonne (cf PJ)

Merci !

Je regarde demain.

Je fais des tests et reviens vers toi.

Bonne fin de soirée

Ok merci !

Bonne soirée

Voilà,

Bonne journée

Super merci

Bonne journée !

Merci pour le retour.

Pense à passer le fil en résolu

ddfpt88

Rechercher des sujets similaires à "total prendre compte valeur italique"