Excel sélection n cellules

xerxcor Messages postés 3 Statut Membre -  
 xerxcor -
Bonjour,
je cherche à faire depuis 2 jours une fonction qui me renvoie la valeur maximale d'une plage de cellules sélectionnées automatiquement à partir d'un point de départ.
je m'explique pour paraitre plus clair

 A      B   
 4      7
        4
        3
       13
        7
        6
        5
        9


En A1, je sais que je dois faire la recherche sur A1 cellules dans ma liste
En B, ma liste de valeur
je souhaite que la fonction recherche le max parmi les 4 données dans ma liste à partir de la cellule de départ
ex: fonction(B4,A1) -> à partir de B4 pour 4 données
sélectionner 4 valeurs pour la plage -> B4, B5, B6, B7
chercher le max dans cette plage

ce que je n'arrive pas à faire c'est définir la plage de données à étudier.

merci pour toute réponse
            
            
A voir également:

3 réponses

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonsoir

essaies:
Function chercher_max(depart As Range, nbre As Byte) As Double
Dim fin As Long
    fin = depart.Row + nbre - 1
    chercher_max = Application.Large(Range(depart.Address & ":$B$" & fin), 1)
End Function


tu cliques dans la colonne B pour avoir la celllule de départ puis dans A1
0
xerxcor
 
Tout d'abord, merci de la rapidité de la réponse.

J'ai testé et ça marche nickel pour la colonne B et en plus c'est super court

Par contre pour réutiliser cette fonction dans une autre colonne (disons C) la plage de recherche comprend alors les colonnes B et C (à cause du $B$). Comment faire pour rester dans la colonne de départ?

En regardant ton modèle, je vois bien une fonction column qui me renvoie le numéro de la colonne de départ mais comment l'appliquer dans la fonction range?
0
xerxcor
 
j'ai rajouté ça, dites moi ce que vous en pensez

Function chercher_max(depart As Range, nbre As Byte) As Double
Dim fin, colonne As Long
fin = depart.Row + nbre - 1
colonne = depart.Column
'MsgBox "fin =" & fin
'MsgBox "colonne" & colonne
'MsgBox "cellule " & Cells(fin, colonne).Address

chercher_max = Application.Large(Range(depart.Address, Cells(fin, colonne)), 1)

End Function
0