Tion exercice bornes maximum
O
Bonjour,
D'après le fichier ci-joint.
Je cherche a écrire dans la feuille 2 (vierge à la base sauf les 2 premières lignes), l'ensemble des valeurs surlignées en grise (pour meilleure compréhension) de la feuille 1 telles que:
- On recherche la ligne où l'on a le nombre max en colonne B (surlignage jaune pour info)
- On soustrait la valeur 10 décimale de ce max chronologiquement AVANT ET APRES cette heure du max (par rapport à l'heure affichée en colonne A) ce qui nous donne l'ensemble des valeurs surlignées en grises.
Merci pour votre aide!
v
Bonjour OpusTlse,
Une solution par macro :
Option Explicit
Sub MaxAvantApres()
Dim maxi As Double, borne#
Dim derlign As Long, i&, ligneInf&, ligneSup&
Dim tablo As Variant, tablo2 As Variant
Application.ScreenUpdating = False
'on détermine la dernière ligne du tableau de la feuille 1
derlign = Sheets(1).Range("A65000").End(xlUp).Row
'on mets les valeurs de la colonne B dans une variable tableau
'la manipulation de variable tableau va plus vite
tablo = Sheets(1).Range("b3:b" & derlign).Value
'on cherche le max
maxi = Application.WorksheetFunction.Max(tablo)
'on détermine la borne de recherche des valeurs
borne = maxi - 10
i = 1
'Cette première boucle permet de chercher la borne inférieure du tableau
Do While tablo(i, 1) <= borne And i < UBound(tablo)
i = i + 1
Loop
ligneInf = i + 2
'Cette deuxième boucle permet de chercher la borne supérieure du tableau
Do While tablo(i, 1) >= borne And i < UBound(tablo)
i = i + 1
Loop
ligneSup = i + 1
tablo2 = Sheets(1).Range("A" & ligneInf & ":M" & ligneSup).Value
'on efface le contenu de la feuille active (à partir de A3)
ActiveSheet.Range("A3:M" & [A65000].End(xlUp).Row + 1).ClearContents
[A3].Resize(UBound(tablo2, 1), UBound(tablo2, 2)).Value = tablo2
End Sub
Cliquer sur le bouton Lancer du fichier joint.