Retenir uniquement les valeurs des pics sur une courbe ondulatoire Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
G
GJC
Jeune membre
Jeune membre
Messages : 34
Inscrit le : 10 juillet 2014
Version d'Excel : 2013

Message par GJC » 14 janvier 2018, 08:51

Bonjour à toutes et tous,
Une feuille de calcul comporte une chronique de hauteur d'une nappe d'eau.
La courbe représentative est ondulatoire, mais pas avec un pas régulier.
Je recherche une macro qui ne retiendrait que les valeurs de crête de chaque ondulation.
Je vous joins la feuille en question, merci pour votre aide.
supression intermittences excelpratique.xlsm
(70.52 Kio) Téléchargé 10 fois
Avatar du membre
M12
Passionné d'Excel
Passionné d'Excel
Messages : 3'226
Appréciations reçues : 128
Inscrit le : 3 juillet 2015
Version d'Excel : 2013

Message par M12 » 14 janvier 2018, 09:25

Bonjour,

Sans macro avec une formule dans le colonne C par exemple (en C2)
=SI(B2=MAX($B$2:$B3);B2;NA())
Merci de clôturer le fil en cliquant sur le bouton V vert du post à coté du bouton EDITER si problème résolu

Je ne répond pas au message privé
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 4'019
Appréciations reçues : 306
Inscrit le : 26 janvier 2011
Version d'Excel : 2007/2019

Message par Theze » 14 janvier 2018, 09:46

Bonjour,

Une autre piste avec VBA :
Sub Test()
    
    Dim Plage As Range
    Dim Tbl() As Double
    Dim Max As Double
    Dim I As Long
    Dim J As Integer
    
    With Worksheets("Feuil1"): Set Plage = .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(xlUp)): End With
    
    For I = 2 To Plage.Count
        
        If Plage(I).Value > Plage(I - 1).Value Then
        
            If Max < Plage(I).Value Then Max = Plage(I).Value
            
        Else
        
            If Max = Plage(I - 1).Value Then
                
                'si on amorce la phase de descente, mémorise le pic dans le tableau
                J = J + 1: ReDim Preserve Tbl(1 To J)
                Tbl(J) = Max
                'et colore la cellule en rouge
                Plage(I - 1).Interior.ColorIndex = 3
                
                Max = 0
                
            End If
            
        End If
        
    Next I
    
    'inscrit les valeurs en colonne C
    Cells(1, 3).Value = "Pics (m)"
    For I = 1 To UBound(Tbl())
    
        Cells(I + 1, 3).Value = Tbl(I)
    
    Next I
   
End Sub

Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'701
Appréciations reçues : 701
Inscrit le : 27 août 2012
Version d'Excel : 365 Personnel

Message par Jean-Eric » 14 janvier 2018, 09:53

Bonjour,
Un exemple sans VBA.
Cdlt.
supression intermittences excelpratique.xlsm
(106.11 Kio) Téléchargé 11 fois
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
g
gmb
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'050
Appréciations reçues : 387
Inscrit le : 4 avril 2013
Version d'Excel : 2016

Message par gmb » 14 janvier 2018, 10:03

Bonjour à tous

Ma participation dominicale ...
Bye !
supression intermittences excelpratique v1.xlsm
(82.6 Kio) Téléchargé 13 fois
G
GJC
Jeune membre
Jeune membre
Messages : 34
Inscrit le : 10 juillet 2014
Version d'Excel : 2013

Message par GJC » 14 janvier 2018, 11:32

Parfait, merci à tous et bon dimanche
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message