julien0112
XLDnaute Nouveau
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
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