Boucle avec conditions

  • Initiateur de la discussion Initiateur de la discussion julien0112
  • 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 !

J

julien0112

Guest
Bonjour à tous,

Je me permets de solliciter votre aide car je n'arrive pas à construire ce que je veux malgré des recherches sur différents forums.

Mon problème est le suivant:
J'ai cinq colonnes:
A=des heures
B=Total
C=apports (parfois=0)
D=consommation (parfois =0)
E=rang des consommations

A1=500
A2=500+b1-c1

j'aimerai que chaque fois que la valeur en colonne A est > à 853 alors je cherche le meilleur rang (la plus petite valeur en colonne E) depuis le moment ou la limite est dépassée et je mets en D la valeur 42

Et à chaque fois que la valeur en colonne A<128 je cherche le moins bon rang depuis ce moment et je mets 0 (à la place de 42) en D

Cela jusqu'à ce que mon total soit toujours 128<=Total<=853.

Je joints le fichier et un bout de mon code pour les gens qui sont intéressés!

Set Plage = Range("B10:B177")
For Each Cellule In Plage
If Cellule.Value < 128 Then
Posit = Cellule.Row
Set c1 = Range("E1:E" & Posit)
myvar = Application.WorksheetFunction.Match(Application.Max(c1), Range("E10:E" & Posit), 0)
MsgBox "La valeur max est en ligne : " & myvar




Range("D" & myvar) = 0

End If


If Cellule.Value > 853 Then
Posit = Cellule.Row
Set c1 = Range("E1:E" & Posit)
myvar = Application.WorksheetFunction.Match(Application.Min(c1), Range("o10😱" & Posit), 0)
MsgBox "La valeur min est en ligne : " & myvar




Range("D" & myvar) = Range("B3")
End If

Next

D'avance merci pour votre aide!
Cordialement,
Julien
 

Pièces jointes

Re : Boucle avec conditions

Bonjour julien0112,

Je n'ai pas regardé tout ton code, mais si le MAX(C1) est en ligne 6, comment pourrait-on en retrouver l'EQUIV dans
Code:
myvar = Application.WorksheetFunction.Match(Application.Max(c1), Range("E[COLOR="Red"][B]10[/B][/COLOR]:E" & Posit), 0)

Pense également à vérifier la partie de code similaire dans ton second 'if' ... et teste déjà ça!
 
Re : Boucle avec conditions

re-bonjour,

... ta réponse implique qu'il y a peut-être aussi dans les explications, des choses qui ne sont pas en lien avec le fichier que tu as déposé ... Pas facile, dès lors, de s'y retrouver.
D'autre part, tu ne dis pas ce qui ne fonctionne pas, en dehors de ma question de tout à l'heure ... Quand j'exécute ton code (même en faisant la correction évoquée) j'observe que le premier nombre en colonne B qui descend sous les 128, apparaît à la ligne 67. Tu cherches alors la position de la plus grande valeur en colonne E (entre les lignes 1 et 67) ... au "premier tour", il s'agit de 156, trouvé en E6. Tu indiques à ce moment 0, en D6 ... Mais un 0 à cet endroit ... est supposé impliquer quoi? D'autant qu'au tour suivant, c'est à nouveau D6 qui reçoit 0 et ainsi de suite pendant un certain temps !?
... Pour les autres, je ne sais pas, mais moi, je n'arrive pas à comprendre 😕
 
Re : Boucle avec conditions

Bonjour,

Merci pour la réponse!

J'ai voulu faire vite et je n'ai pas adapté mon code au fichier light.

La colonne D est le programme de consommation de base et c'est lui que je dois modifier en fonction des critères de limites et de classement.

Si mon total dépasse la limite supérieure alors je dois remplacer un 0 par un 42 dans la colonne D et je dois prendre pour se faire la cellule en D qui a le meilleur classement (le plus petit chiffre) en E.

A l'inverse, si mon total dépasse la limite inférieure cela veut dire que mon programme de base à trop produit et je dois donc remplacer un 42 en colonne D par un 0 et je vais donc choisir la cellule en D qui à le moins bon classement en E (depuis le moment ou la limite est dépassée et vers le haut)

tu as parfaitement saisi ma question.

Il faut juste que j'adapte mon code à ce fichier.

Excellente journée,
Cordialement,
j.
 
- 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
6
Affichages
737
Réponses
12
Affichages
1 K
Réponses
7
Affichages
812
Réponses
14
Affichages
876
Réponses
5
Affichages
1 K
W
Réponses
4
Affichages
688
Retour