total avec lignes masquées

J

jacques

Guest
bonsoir le forum

suite à des lignes masquées je voudrais faire la somme des valeurs restées visibles
quelle est la formule à appliquer
merci de vos réponses
bonne soirée
jacques
 
J

jacques

Guest
bonsoir
mes lignes ne sont justement pas masquées par un filtre mais par
format ligne masquer et par conséquent la fonctoin sous total ne fonctionne pas
existe il une autre solution ?

bonsoir à tous

jacques
 

JeanMarie

XLDnaute Barbatruc
Bonsoir tout le monde

Je viens d'être alerté par Didier, que la fonction sous.total(109;....) ne fonctionnait pas sur son micro (PC)

Grâce à lui, nous venons de découvrir une autre différence entre les versions PC et MAC d'Excel. Voir le fichier joint, qui reprend le texte de l'aide en ligne MAC de cette fonction.

Merci Didier.

@+Jean-Marie

[file name=soustotal.zip size=35162]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/soustotal.zip[/file]

Message édité par: JeanMarie, à: 10/07/2005 09:35
 

Pièces jointes

  • soustotal.zip
    34.3 KB · Affichages: 38
  • soustotal.zip
    34.3 KB · Affichages: 38
  • soustotal.zip
    34.3 KB · Affichages: 41

JeanMarie

XLDnaute Barbatruc
Bonjour tout le monde

Pour corriger un manque de la version d'Excel PC, ci-joint un code à placer dans un module

Code:
Option Explicit
Option Base 0

Public Function SousTotalPC(CodeFonction As Byte, Plage As Range) As Variant
Dim vTab() As Variant
Dim vMatrice() As Byte
Dim vCell As Range
Dim I As Long
Dim J As Long

ReDim Preserve vMatrice(Plage.Rows.Count - 1)
For Each vCell In Plage
   If vCell.EntireRow.Hidden = False Then
      vMatrice(J) = 1
      I = I + 1
      ReDim Preserve vTab(I)
      vTab(I) = vCell
   Else
      vMatrice(J) = 0
   End If
   J = J + 1
Next
'CodeFonction reprend le code utilisé dans la fonction SOUS.TOTAL
Select Case CodeFonction
Case 1
SousTotalPC = Application.WorksheetFunction.Median(vTab)
Case 2
SousTotalPC = Application.WorksheetFunction.Count(vTab)
Case 3
SousTotalPC = Application.WorksheetFunction.CountA(vTab)
Case 4
SousTotalPC = Application.WorksheetFunction.Max(vTab)
Case 5
SousTotalPC = Application.WorksheetFunction.Min(vTab)
Case 6
SousTotalPC = Application.WorksheetFunction.Product(vTab)
Case 7
SousTotalPC = Application.WorksheetFunction.StDev(vTab)
Case 8
SousTotalPC = Application.WorksheetFunction.StDevP(vTab)
Case 9
SousTotalPC = Application.WorksheetFunction.Sum(vTab)
Case 10
SousTotalPC = Application.WorksheetFunction.Var(vTab)
Case 11
SousTotalPC = Application.WorksheetFunction.VarP(vTab)
Case 12
   'Ce code additionnel retourne une matrice qui contient
   '0 pour une cellule invisible
   '1 pour une cellule visible
SousTotalPC = Application.WorksheetFunction.Transpose(vMatrice)
End Select

Cette function prend en compte les cellules masquées manuellement ou par l'utilisation d'un filtre personnalisé.

J'avais commencé à travailler avec Sélection.SpecialCells(xlCellTypeVisible).select, mais je n'y suis pas arrivé. Si une bonne âme pouvait m'aiguiller sur cette longue route de la découverte de VBA, je l'en remercierai.

Bonne journée à tous

@+Jean-Marie
 

Tibo

XLDnaute Barbatruc
Salut à tous,

Petite précision quant à la fonction SOUS.TOTAL :

=SOUS.TOTAL(109;A1:A100)

fonctionne avec la version 2003, pas avec la version 2000.

Le premier paramètre est limité (sur XL2000) de 1 à 11.

Ca a fait l'objet d'un fil hier je crois avec André.

Bon dimanche à tous
 

Discussions similaires

Réponses
17
Affichages
668

Statistiques des forums

Discussions
312 304
Messages
2 087 059
Membres
103 445
dernier inscrit
LOLKFR