XL 2016 Somme entre deux valeurs

Menstru LH

XLDnaute Junior
Bonjour la communauté,

Après plusieurs recherches et tentatives, je lance un appel à l'aide

Ci-joint, il y a un fichier dans lequel il y a une colonne avec trois types de valeurs, a;b et KO.
Dans l'autre colonne, il y a des nombres associées à la valeur KO (uniquement)

Voici un extrait :

a
KO
0,05​
a
b
a
KO
0,05​
a
b
a
KO
0,5​
KO
0​
KO
0,05​
a
b
a
KO
-0,5​
KO
0​
KO
-0,05​
a
b

J'aimerai faire une somme par bloc c'est à dire calculer la somme des valeurs de la deuxième colonne entre le premier bloc de "a" à "a" puis entre le deuxième bloc de "a" à "a" etc...

Des idées ?

Un grand merci
 

Pièces jointes

  • Calcul entre deux valeurs.xlsx
    14.8 KB · Affichages: 9

Menstru LH

XLDnaute Junior
Merci Fanfan

j'ai une erreur de type 13,sais-tu pourquoi ?
Qu'ai-je fais de mal ?

Merci

1030909
 

Menstru LH

XLDnaute Junior
Fanfan

J'ai fermé puis re-ouvert Excel et là plus de bug ! En revanche, je n'arrive pas à comprendre comment fonctionne ta macro, je ne vois pas la résultats :(
Je te joins le fichier complet qui te permettra de comprendre mieux mon problème

En gros j'ai des blocs de produits et je connais le somme TTC de chacun de ses blocs mais je ne connais pas la somme HT

Donc quand tu regardes la structure du fichier, ça fonctionne toujours de la même façon : en face de la ligne 'type de paiement" (espèce, carte bleue, etc.), tu as la somme des lignes TTC de produits du bloc mais pas la somme HT...

Et c'est là où j'ai justement besoin de calculer cette somme HT par bloc

Suis-je clair ?

Merci beaucoup
 

Pièces jointes

  • Classeur exemple.xlsx
    522.8 KB · Affichages: 7

fanfan38

XLDnaute Barbatruc
Si tu n'as plu les a, Ko la macro ne marchera plus...
Explication de la macro
Columns(8).ClearContents 'colonne où est inscrit le résultat
Range("H1").Value = "Somme TVA" 'titre de la colonne
derlig = Range("A" & Rows.Count).End(xlUp).Row 'nombre de ligne à contrôler
mavar = 0
For i = 2 To derlig
If Range("B" & i).Value = "KO" Then
If Len(Range("E" & i).Value) > 0 Then 'si cellule de la colonne E n'est pas vide
mavar = mavar + Range("E" & i).Value 'addtion de'une variable avec le contenue de la cellule correspondante
End If
Else
If mavar <> 0 Then Range("H" & i - 1).Value = mavar 'si pas "KO" la variable est copié dans la cellule correspondante dans la colonne H
mavar = 0
End If
Next
Ci joint les résultats sont en colonne B (donc la macro a été modifié)

A+ François
 

Pièces jointes

  • Classeur exemple.xlsm
    585.7 KB · Affichages: 2

Menstru LH

XLDnaute Junior
Merci François, merci vraiment !

Ma question était en fait, est-ce que le résultat de la macro peut être affiché en face de la cellule où y 'a écrit "b" et pas ou y'a écrit "KO" actuellement ?

Ps : j'ai bien compris ta macro, merci pour l'explication
 

Menstru LH

XLDnaute Junior
Re,

J'ai peut être crié victoire un peu trop vite...

Si tu regardes bien, il y a des soucis sur certaines ligne : prend par exemple la ligne 162 du dernier classeur et tu te rendras compte que la somme ne correspond pas au bon montant...ni la ligne 302...et d'autres lignes !

Ce que je ne maîtrise pas c'est d'où vient l'erreur, impossible de retomber sur le chiffre calculé

As-tu une idée ?

Merci
 

Discussions similaires

Réponses
1
Affichages
219
Réponses
6
Affichages
513