Valeur du jour pour lequel le max est atteint

  • Initiateur de la discussion Initiateur de la discussion Dogde
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

Dogde

Guest
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

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:
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
729
Réponses
15
Affichages
775
Réponses
3
Affichages
331
Réponses
5
Affichages
905
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
449
Réponses
10
Affichages
1 K
Réponses
8
Affichages
776
Réponses
3
Affichages
919
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
902
Retour