Faire en sorte qu'une fn MIN ou MAX ne prennent en compte que les cellules visible

genest

XLDnaute Junior
Bonjour le forum,

Je me posais une petite question,

Est ce qu'il est possible de faire en sorte qu'une fonction Min ou Max ne prennent en compte que les cellules visibles d'une feuille ?

Si oui comment ?

Merci d'avance pour votre aide

Genest
 

tototiti2008

XLDnaute Barbatruc
Re : Faire en sorte qu'une fn MIN ou MAX ne prennent en compte que les cellules visib

Re,

Sinon un essai par formule
pour moi aussi essayer de comprendre la combinaison SOUS.TOTAL(..;DECALER(..)) :)
 

Pièces jointes

  • Classeur1.xls
    18.5 KB · Affichages: 49
  • Classeur1.xls
    18.5 KB · Affichages: 55
  • Classeur1.xls
    18.5 KB · Affichages: 58

david84

XLDnaute Barbatruc
Re : Faire en sorte qu'une fn MIN ou MAX ne prennent en compte que les cellules visib

Bonjour, salut Pierrot,
si tu veux obtenir ce résultat par formule, il te faut utiliser la fonction SOUS.TOTAL en la combinant avec MIN ou MAX.
A+
Edit @Marc : outre la fonction DECALER, tu as d'autres possibilités, par exemple en passant par INDIRECT(ADRESSE :
Code:
=MIN(SI(SOUS.TOTAL(103;INDIRECT(ADRESSE(LIGNE(B4:B15);COLONNE(B4:B15))));B4:B15))
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Faire en sorte qu'une fn MIN ou MAX ne prennent en compte que les cellules visib

Bonjour Genest, bonjour le forum,

Si tu déclares et définis une plage, tu peux ensuite calculer sur les cellules visibles de la plage. Un exemple dans le fichier en pièce jointe. Efectue un filtre dans la colonne B avec 1, 2 ou tous comme critère puis lance la macro...
Le code :
Code:
Sub Macro1()
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim mi As Variant 'déclare la variable mi (MInimum)
Dim ma As Variant 'déclare la variable ma (MAximum)

With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
    dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row 'définitla dernière ligne éditée dl de la colonne 1 (=A)
    Set pl = .Range("A2:A" & dl) 'définit la plage pl
    mi = Application.WorksheetFunction.Min(pl.SpecialCells(xlCellTypeVisible)) 'définit le minimum mi des cellules visibles de la plage pl
    ma = Application.WorksheetFunction.Max(pl.SpecialCells(xlCellTypeVisible)) 'définit le maximum ma des cellules visibles de la plage pl
    MsgBox "Min = " & mi & " / Max =" & ma 'message affichant le minimum mi et le maximum ma
End With 'fin de la prise en compte de l'onglet "Feuil1"
End Sub
Le fichier :

[Edition]
Bonjour Pierrot, Tototiti, David... 'ach'ment en r'tard moi !
 

Pièces jointes

  • Genest_v01.xls
    32 KB · Affichages: 38

tototiti2008

XLDnaute Barbatruc
Re : Faire en sorte qu'une fn MIN ou MAX ne prennent en compte que les cellules visib

Bonjour David, Bonjour Robert,
Re,

@David : merci de la précision je vais fouiller ça, je vois bien l'intérêt :)

Arf, je suis pas sûr que j'ai choisi la méthode la plus simple et je crois que j'ai embarqué David sur les formules compliquées, parce que je crois que avec juste un SOUS.TOTAL ça le fait, voir fichier joint ;)
 

Pièces jointes

  • Classeur2.xls
    18.5 KB · Affichages: 45
  • Classeur2.xls
    18.5 KB · Affichages: 47
  • Classeur2.xls
    18.5 KB · Affichages: 51

david84

XLDnaute Barbatruc
Re : Faire en sorte qu'une fn MIN ou MAX ne prennent en compte que les cellules visib

Re
Arf, je suis pas sûr que j'ai choisi la méthode la plus simple et je crois que j'ai embarqué David sur les formules compliquées, parce que je crois que avec juste un SOUS.TOTAL ça le fait, voir fichier joint
Excellente remarque ! Tu as raison en ce qui concerne MIN, MAX ou MOYENNE car ce sont des arguments prévus dans la fonction SOUS.TOTAL mais si tu utilises un SOMMEPROD par exemple, tu seras obligé de redéfinir ta plage de traitement pour que SOUS.TOTAL puisse fonctionner, que ce soit avec DECALER ou INDIRECT(ADRESSE notamment.
Mais tu as bien fait de le rappeler.
A+
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 379
Messages
2 087 767
Membres
103 662
dernier inscrit
rterterert