Valeur max dans une plage définit par des variables

Everlast03 Messages postés 29 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 8 décembre 2014 - 12 mai 2010 à 11:33
Everlast03 Messages postés 29 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 8 décembre 2014 - 18 mai 2010 à 07:58
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
12 mai 2010 à 16:05
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)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
12 mai 2010 à 16:08
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"))
0
Everlast03 Messages postés 29 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 8 décembre 2014
18 mai 2010 à 07:58
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
0
Rejoignez-nous