Valeur max dans une plage définit par des variables

Signaler
Messages postés
29
Date d'inscription
mardi 27 avril 2010
Statut
Membre
Dernière intervention
8 décembre 2014
-
Messages postés
29
Date d'inscription
mardi 27 avril 2010
Statut
Membre
Dernière intervention
8 décembre 2014
-
J'ai un petit problème,

J'ai un tableau de valeurs (que je récupère) dont les premiers relevés ne m'intéressent pas.
Je prends donc le maximum (car les points sont gradués 1-2-3...) pour pouvoir ensuite définir la plage qui m'intéresse.
Je m'explique :

J'ai un tableau avec 499 valeurs(non fixes) puis ensuite 11 lignes sont passés pour avoir un nouveau tableau de valeur. Je cherche à obtenir la valeur max de ce nouveau tableau.

En gros il faudrait que je réussisse à faire la fonction MAX sur la plage s'étendant de la valeur MAX de la colonne A + 11 jusqu'à la fin de ma page.

Ai-je été assez clair ?!
N'hésitez pas ...

Fichier Joint

3 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut
"J'ai un tableau avec 499 valeurs"
Veux-tu dire que tu 499 valeurs stockées dans la colonne A d'une feuille Excel ?
Essaye d'être précis.

"puis ensuite 11 lignes"
11 nouvelles valeurs à mettre en dessous des premières ?

Il a fallu que j'ouvre ton fichier pour en déduire que la colonne A renferme des index.
"Valeurs" n'est pas assez précis, surtout quand tu écris juste après "(non fixes)".

Donc, ce que tu appelles "de la valeur MAX de la colonne A", c'est la dernière cellule d'une colonne (ouf) : La fonction équivalente (voir macro) aux touches Ctrl-Flèche-Bas fait ça aussi bien et sans tenir compte de la valeur des données.

Ta fonction Max peut très bien être faite simplement comme ça :
    Range("A12").Select             ' 1ère ligne de données
    Selection.End(xlDown).Select    ' Saut à la dernière contigue
    ' Calcule la plage à partir de cette cellule + les 11 suivantes (même colonne)
    Range(ActiveCell.Address, ActiveCell.Offset(11, 0).Address).Select
    ' Calcule le Maxi
    MsgBox "Maxi = " & WorksheetFunction.Max(Selection)
Adapte ça à ta sauce, tu as là tous les éléments pour avancer

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Si tu dois faire un Max avec des zones séparées, il suffit de les lister dans la fonction Max :
MsgBox "Maxi = " & WorksheetFunction.Max(ActiveCell, Range("C12:C18"))
Messages postés
29
Date d'inscription
mardi 27 avril 2010
Statut
Membre
Dernière intervention
8 décembre 2014

Je vais t'expliquer ce que je veux exactement en fait. Il faudrait que :
[list]
J'obtienne la valeur maximale (dans la colonne A)du premier relevé de mesures, c'est à dire le relevé ou la colonne F n'est pas remplie,
J'obtienne ensuite la valeur maximale (dans la colonne A) des données restantes (sans compter les valeurs ou le max a été donné précédemment),
Une fois ces 2 valeurs obtenues, je recopies les cellules sur la page "traitement" (ici ce sont les cellules allant donc de F525:F928 puis à côté de celle-ci : F1013:F1486...
/list

C'est assez difficile à expliquer ...

Cordialement