Valeur du jour pour lequel le max est atteint

Dogde

XLDnaute Nouveau
Bonjour!

Dans ma feuille Excel, j'ai deux colonnes: la 1ere avec des jours et la seconde avec des valeurs.
J'essaie de creer une macro qui permet de demander pour quel jour le maximum des valeurs de la colonne B est atteint (seulement pour les 6 premiers mois).

J'ai code mais je ne comprend pas pourquoi la valeur du jour retourne est en fait la derniere valeur de mon compteur et non pas celle du max.

Quelqu'un pourrait me dire ce qui ne va pas ?

Code:

Code:
Sub days()

Dim j As Integer, k As Integer

For j = 2 To 182
    For k = j To 182
        If Worksheets("Sheet1").Range("B" & j).Value >= Worksheets("Sheet1").Range("B" & k).Value Then
            Worksheets("Sheet1").Range("D" & 1) = Worksheets("Sheet1").Range("A" & k).Value
        End If
    Next k
Next j


End Sub

Mon fichier est en piece jointe.
 

Pièces jointes

  • example1.xlsm
    21.8 KB · Affichages: 46
  • example1.xlsm
    21.8 KB · Affichages: 46
  • example1.xlsm
    21.8 KB · Affichages: 46

GIBI

XLDnaute Impliqué
Re : Valeur du jour pour lequel le max est atteint

Bonjour,

si tu veux détecter la plus grande valeur c'est plus simple :

Code:
Sub days()

Dim j As Long

Dim Maxi

For j = 2 To Worksheets("Sheet1").Range("B100000").End(xlUp).Row
  If Worksheets("Sheet1").Range("B" & j).Value >= Maxi Then
            Maxi = Worksheets("Sheet1").Range("B" & j).Value
            Worksheets("Sheet1").Range("D" & 1) = Worksheets("Sheet1").Range("A" & j).Value
  End If
Next j


End Sub



Remarque : la formule {=MAX(SI(B2:B341=MAX(B2:B400);LIGNE(B2:B341)-1;""))} à valider avec Ctrl+Shift+entrée donne le même résultat
 
Dernière édition:

Legolas

XLDnaute Occasionnel
Re : Valeur du jour pour lequel le max est atteint

Bonjour,

Pour détecter le jour ayant la plus grande valeur :

VB:
Sub days()

Dim j As Integer

Max = Cells(2, 2)

For j = 2 To 182
    If Cells(j, 2) >= Max Then
        Max = Cells(j, 2)
        Cells(1, 4) = Cells(j, 1)
    End If
Next j


End Sub

A plus
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Valeur du jour pour lequel le max est atteint

Bonjour Dodge, bonjour le forum,

Peut-être comme ça :
Code:
Sub days()
Dim pl As Range 'déclare la variable pl (PLage)
Dim r As Range 'déclare la variable R (Recherche)

Set pl = Range("B2:B182") 'définit la plage pl
Set r = pl.Find(Application.WorksheetFunction.Max(pl), , xlFormulas, xlWhole) 'définit la recherche r (recherche la valeur maximale dans la plage pl)
Range("D1").Value = r.Offset(0, -1) 'place en D1 le jour de l'occurrence touvée
End Sub
 

Discussions similaires

Réponses
7
Affichages
360
Réponses
23
Affichages
1 K

Statistiques des forums

Discussions
312 490
Messages
2 088 884
Membres
103 982
dernier inscrit
krakencolas