récupération compliquée de n° de ligne

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

julfe

XLDnaute Nouveau
Bonjour
Mon souci sur VBA, auquel a priori je n'ai pas trouvé solution sur les forums déjà existants (désolé si c'est le cas).

Mes données :
Si j'en fais un graphe, ça donne le profil d'une balle qui tombe en chute libre au cours du temps, avec un permier rebond très amorti au sol, les rebonds qui suivent sont négligeables pour mon explication.

Mon objectif :
Connaissant la fréquence d'acquisition de mes données, récupérer le moment (donc le n° de la ligne) où la trajectoire se stabilise sous un certain seuil, correspondant donc au Nième "impact" au sol.

Mon approche :
Récupérer le numéro de la ligne correspondant au Nième "impact", je pensais créer comme règle de décision quelque chose du style :

"à partir de A1,
descendre de ligne en ligne
jusqu'à identifier une valeur inférieure au seuil défini,
si les x lignes qui suivent sont aussi inférieures au seuil
reporter en fin de colonne le n° de la première ligne de la série".

Le problème réside dans le fait que mes valeurs passent déjà une ou plusieurs fois sous le seuil défini (premiers "rebonds"), or c'est celle qui correspond à l'amortissement final qui m'intéresse. Sachant que cette dernière fois mes valeurs ne vont pas redépasser ce seuil (en tout cas pas pendant un certain temps), j'ai imaginé cette histoire de "x lignes consécutives"

Bien sûr tout ceci concerne une flopée de fichiers donc à terme je vais en faire une boucle.

Je vous mets le graphe correspondant à mes données histoire d'aider à la compréhension (si des fois c'est possible 😉).

grapheexemple.jpg


Je suis vraiment dans la panade, merci de m'apporter un coup de main.
 
Re : récupération compliquée de n° de ligne

Bonjour Julfe, bonjour le forum,

Tu fais une boucle en décrémentant, et la première valeur supérieur ou égal au seuil doit être la ligne recherchée. Vois ci dessous exemple avec résultat en B1 et valeur à balayer de A1 à A13.

Code:
Sub Trouveseuil()
For i = 13 To 1 Step -1
If Cells(i, 1) >= 10 Then
    Range("B1") = i
    Exit For
End If
Next i
End Sub

Bonne soirée,

Ninbihan
 
Re : récupération compliquée de n° de ligne

Ouah grand merci Ninbihan !

Je ne savais pas que l'on pouvait à ce point simplifier le truc et notamment se passer de manipuler les objets comme cela.

Par contre je me rends compte que certaines de mes données repassent au dessus du seuil. Ce sont des artefacts, je souhaite ne pas en tenir compte. Or avec la méthode de décrémentation si je pars du bas de ma colonne je vais obtenir des résultats aberrant.
C'est la raison pour laquelle je m'orientais vers une histoires de "x lignes consécutives qui remplissent ma condition".

Une idée ? En attendant je potasse le truc sur la base de ce que tu me proposes.
 
Re : récupération compliquée de n° de ligne

Bonjour Julfe,

Si tu sais déterminer le X dans ce cas il suffit d'ajouter une condition dans la boucle. Je reprends mon exemple avec un X = 2 :
Code:
Sub Trouveseuil()
Dim i, x, y As Integer
For i = 13 To 1 Step -1
    If Cells(i, 1) >= 10 Then
        x = x + 1
        If x = 2 Then
            y = i + x - 1
            Exit For
        End If
Else
    x = 0
End If
Next i
Range("B1") = y
End Sub

Bon aprés midi,

Ninbihan
 
- 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

Discussions similaires

Retour