Trouver val max et récupérer la valeur d'une cellule adjacente

christofz Messages postés 3 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 24 septembre 2012 - 18 sept. 2012 à 07:09
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 24 sept. 2012 à 07:01
Bonjour à tous,

J'ai une feuille de calcul où j'ai des valeurs H & F pour chaque jour de la semaine sur x semaines (cf. capture)



Je souhaite récupérer la valeur de F quand H est max, exemple pour le lundi le H max est en semaine 01 donc la valeur à récupérer le F est 71.

Je recherche depuis un petit moment mais rien de vraiment exceptionnel :)

Merci d'avance pour votre aide.

3 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 sept. 2012 à 07:28
Bonjour,
On aurait aimé voir le bout de code que tu as au moins tenté !

Je vais personnellement à ce stade me contenter de te donner les indications qui vont te permettre de te lancer dans ce travail :
1) Worksheetfunction.max(une_plage) te retourne la valeur max des cellules de la plage une_plage, que la dite plage soit constituée de cellules continues ou non.
2) une plage de cellules discontinues peut être définie à l'aide de Application.Union
3) la méthode Find permet de trouver l"'adresse d'une cellule contenant une valeur spécifiée, à chercher.
4) la propriété Offset d'une plage (une cellule est une plage) permet de trouver l'adresse d'une cellule "décalée" par eapport à une cellule d'adresse connue.

Voilà ce qu'il te faut connaître. Tu le connais maintenant et peux donc t'y mettre rn connaissance de cause, à ce travail.

ouvre ton aide VBA sur chacun des mots que j'ai soulignéqs plus haut.
Rerviens avec le code tenté, si encore en difficulté. Nous t'aiderons alors.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
christofz Messages postés 3 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 24 septembre 2012
24 sept. 2012 à 06:45
Bonjour,

Merci pour ta réponse. Mon code avance un peu, mais je suis bloqué :)

Private Sub RechercheF_Lundi()

Dim MaxH As Integer
Dim x As Long


'Determine le max pour H
MaxH = WorksheetFunction.Max(Range("c4"), Range("M4"), Range("W4"), Range("AG4"), Range("C13"), Range("M13"), Range("W13"), Range("AG13"), Range("C22"), Range("M22"), Range("W22"), Range("AG22"), Range("C31"), Range("M31"), Range("W31"), Range("AG31"))


 
On Error Resume Next
x = Application.Match(MaxH, [Range("c4"), Range("M4"), Range("W4"), Range("AG4"), Range("C13"), Range("M13"), Range("W13"), Range("AG13"), Range("C22"), Range("M22"), Range("W22"), Range("AG22"), Range("C31"), Range("M31"), Range("W31"), Range("AG31")], 0)
 
If x = 0 Then
    MsgBox "Valeur " & MaxH & " non trouvée."
    Else
    MsgBox "Valeur " & MaxH & " trouvée dans la ligne: " & x
End If
End sub


J'arrive pas à trouver la cellule contenant MaxH...
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 sept. 2012 à 07:01
1) enlève ton on error resume next qui ne fait que cacher la faute éventuelle
2) je t'avais dit :
la méthode Find permet de trouver l"'adresse d'une cellule contenant une valeur spécifiée, à chercher

et tu as utilisé Match ! Il se trouve que l fonction Match ne sait traiter qu'une plage de cellule contigües !
Alors ? === >>> Find


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Rejoignez-nous