Max avec condition : quelle syntaxe ?

  • Initiateur de la discussion Initiateur de la discussion Sebast
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Sebast

XLDnaute Impliqué
Bonjour à toutes et à tous,

je cherche à introduire une condition avec une fonction MAX mais je dois avoir un problème de syntaxe …
(voir fichier joint)
Dans la colonne année, j'aimerais connaître la plus grande année qui serait inférieure à 2014

je sais que l'instruction suivante plante mais je ne sais pas comment la formuler :

Code:
Extremum_condition = Application.WorksheetFunction.Max(RangeChiffres < 2014)

Quelqu'un a-t-il une idée si on peut mettre une condition avec une fonction Max() en VBA ?

Merci d'avance

le code complet est

Code:
Sub Extremum_avec_condition()
    Dim lastline As Long
    Dim RangeChiffres As Range
    Dim Extremum_condition As Long
    lastline = Sheets("Chiffres").Range("A" & Rows.Count).End(xlUp).Row
    Set RangeChiffres = Sheets("Chiffres").Range("A2:A" & lastline)
    Extremum_condition = Application.WorksheetFunction.Max(RangeChiffres < 2014) ' ça plante ici ...
    MsgBox "Le maximum est " & Extremum_condition
End Sub
 

Pièces jointes

Re : Max avec condition : quelle syntaxe ?

Bonjour @ tous,
Par formules si tu veux bien..

Formule Matricielle :
Code:
=MAX(SI(A2:A501<2014;A2:A501))
@ valider par Ctrl+Maj+Entree


Formule Classique :
Code:
=PETITE.VALEUR(A2:A501;NB.SI(A2:A501;"<2014"))
@ valider par Entree


@ + +
 
Re : Max avec condition : quelle syntaxe ?

Bonjour Rachid,

Je n'ai pas réussi à intégrer ta formule dans du code VBA mais elle m'a quand même aidé car j'ai approfondi la notion et ai découvert la fonction Large()
En fait, cette fonction répond à mon besoin car tout bien pesé, elle me permet de détecter l'avant-dernière plus grande année
(qui était le but de cette routine, mais peut-être mal formulé)

Code:
Sub Antepenultième()
Dim lastline As Long
Dim RangeChiffres As Range
Dim Extremum_condition As Long
lastline = Sheets("Chiffres").Range("A" & Rows.Count).End(xlUp).Row
Set RangeChiffres = Sheets("Chiffres").Range("A2:A" & lastline)
Extremum_condition = Application.WorksheetFunction.Large(RangeChiffres, 2)  ' 2 pour 2ème plus grande valeur de la liste
MsgBox "Le maximum est " & Extremum_condition


Cependant, je reste intéressé par une fonction du type de ce tu m'as proposé mais qu'on puisse intégrer en VBA
(ta fonction marche quand on est dans la feuille et qu'on l'écrit dans une cellule)

Encore merci pour ton aide qui m'a permis de mieux comprendre
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
16
Affichages
2 K
Réponses
28
Affichages
2 K
Réponses
3
Affichages
599
Retour