calcul sous-totaux colonne à chaque cellule différente de 1

Novice avance !?

XLDnaute Occasionnel
bonjour,

est-il possible de calculer et d'extraire dans un tableau des sous-totaux d'une colonne à chaque fois que la cellule est différente de 1 comme présenté dans le fichier joint ?

merci
bonne journée
 

Pièces jointes

  • Classeur1.xls
    20.5 KB · Affichages: 74
  • Classeur1.xls
    20.5 KB · Affichages: 80
  • Classeur1.xls
    20.5 KB · Affichages: 80

GI_tang

XLDnaute Nouveau
Re : calcul sous-totaux colonne à chaque cellule différente de 1

Salut voila une solution ci-joint par contre tu a des colonnes intermédiaires, par le choix si on fait ca en formule, sinon il faut faire un bout de vba
 

Pièces jointes

  • Classeur1(1).xls
    52.5 KB · Affichages: 64
  • Classeur1(1).xls
    52.5 KB · Affichages: 78
  • Classeur1(1).xls
    52.5 KB · Affichages: 65

Novice avance !?

XLDnaute Occasionnel
Re : calcul sous-totaux colonne à chaque cellule différente de 1

merci
le problème est qu'il faut prendre en compte dans cette solution les dates de séparation et que cela implique toutes ces colonnes intermédaires. Cela ne serait pas facilement applicable.

s'il n'y pas de solution par formule, effectivement un code vba serait peut-être l'idéal ?
 

job75

XLDnaute Barbatruc
Re : calcul sous-totaux colonne à chaque cellule différente de 1

Bonjour,

Voyez le fichier joint et cette macro :

Code:
Sub SousTotal()
Dim plage As Range, cel As Range
Application.ScreenUpdating = False
Set plage = Range("B1", [B65536].End(xlUp))
plage.AutoFilter 1, "<>1"
Set plage = plage.Offset(1).SpecialCells(xlCellTypeVisible)
ActiveSheet.AutoFilterMode = False
Set plage = Intersect(plage.EntireRow, [C:C])
[C2:C65536].ClearContents 'RAZ
For Each cel In plage
cel.FormulaArray = "=SUM(OFFSET(R1C2,MAX(IF(R1C2:R[-1]C2<>1,ROW(R1C2:R[-1]C2)))-1,):R[-1]C2)"
'cel = cel 'facultatif, supprime la formule
Next
End Sub
Elle entre une formule matricielle en colonne C.

A+
 

Pièces jointes

  • Sous Total(1).xls
    50 KB · Affichages: 54
  • Sous Total(1).xls
    50 KB · Affichages: 47
  • Sous Total(1).xls
    50 KB · Affichages: 51

job75

XLDnaute Barbatruc
Re : calcul sous-totaux colonne à chaque cellule différente de 1

Re,

Sinon uniquement par formule matricielle en C2 :

Code:
=SI(B2=1;"";SOMME(DECALER(B$1;MAX(SI(B$1:B1<>1;LIGNE(B$1:B1)))-1;):B1))
A valider par Ctrl+Maj+Entrée.

Fichier joint.

A+
 

Pièces jointes

  • Sous Total Formule(1).xls
    58 KB · Affichages: 53

Novice avance !?

XLDnaute Occasionnel
Re : calcul sous-totaux colonne à chaque cellule différente de 1

Bonjour,

Voyez le fichier joint et cette macro :

Code:
Sub SousTotal()
Dim plage As Range, cel As Range
Application.ScreenUpdating = False
Set plage = Range("B1", [B65536].End(xlUp))
plage.AutoFilter 1, "<>1"
Set plage = plage.Offset(1).SpecialCells(xlCellTypeVisible)
ActiveSheet.AutoFilterMode = False
Set plage = Intersect(plage.EntireRow, [C:C])
[C2:C65536].ClearContents 'RAZ
For Each cel In plage
cel.FormulaArray = "=SUM(OFFSET(R1C2,MAX(IF(R1C2:R[-1]C2<>1,ROW(R1C2:R[-1]C2)))-1,):R[-1]C2)"
'cel = cel 'facultatif, supprime la formule
Next
End Sub
Elle entre une formule matricielle en colonne C.

A+


merci le code vba me parait une piste très intéressante. Serait-il possible de l'adapter ?

J'ai déjà commencé à l'adapter pour que les résultats soit extrait dans un tableau mais l'idéal serait de pouvoir boucler sur plusieurs colonne ce type de calcul.

Je joins le fichier adapté en attente d'une évolution permettant de faire cela.

merci par avance
 

Pièces jointes

  • test_v3.xls
    146.5 KB · Affichages: 47
  • test_v3.xls
    146.5 KB · Affichages: 53
  • test_v3.xls
    146.5 KB · Affichages: 52

job75

XLDnaute Barbatruc
Re : calcul sous-totaux colonne à chaque cellule différente de 1

Re,

Si l'on veut uniquement le tableau en colonne D, on peut entrer directement en D2 :

Code:
=SOMME(INDIRECT("B"&PETITE.VALEUR(TabLig;LIGNE()-1)&":B"&PETITE.VALEUR(TabLig;LIGNE())))
TabLig étant le nom défini par :

Code:
=SI(Feuil1!$B$1:$B$1000<>1;LIGNE(Feuil1!$B$1:$B$1000))
Aucune validation matricielle n'est nécessaire.

Fichier (2).

A+
 

Pièces jointes

  • Sous Total Formule(2).xls
    31.5 KB · Affichages: 56

job75

XLDnaute Barbatruc
Re : calcul sous-totaux colonne à chaque cellule différente de 1

Re,

Vous avez bien sûr compris que VBA n'est absolument pas nécessaire.

Votre fichier du post #6 adapté ci-joint.

A+
 

Pièces jointes

  • test_v3(1).xls
    84 KB · Affichages: 56

Discussions similaires

Réponses
6
Affichages
302