Pb de réalisation de macro

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

A

Antoine2106

Guest
Bonjour à tous 🙂
Voilà en réalité je parcours souvent ce forum et j'ai finit par m'inscrire afin de vous demandez de l'aide sur la réalisation d'une macro VBA:
je souhaite que ma macro compare une valeur que l'on note N qui varie régulièrement (la macro se déclenche à chaque variation de N...) à deux autres noté "high" et "low" de la manière suivante:
Si N>=high alors high=N (la borne supérieur est remplacée) et dans ce cas la borne "low" est réinistialisée et prendra la prochaine valeur inférieur a N

Si N<= low alors low=N (la borne inférieur est remplacée) et la borne sup "high" et réinitialisée et prendra la prochaine valeur de N inférieur.

Pour le moment j'ai réussi simplement à changer les bornes lorsqu'elles sont dépassées ac les instruction suivantes :

If Range("FL1").Value >= Range("DC5").Value Then Range("DC5").Value = Range("FL1").Value

If Range("FL1").Value <= Range("FO5").Value Then Range("FO5").Value = Range("FL1").Value

N est dans la cellule FL1, High dans DC5 et Low dans FO5

Merci d'avance cordialement,
 
Dernière modification par un modérateur:
Re : Pb de réalisation de macro

Bonjour,

Je n'ai pas trop compris ce que devait être le but de l'exercice mais...

Copie ce qui suit dans le module Feuille où se déroule l'action.
Un clic sur l'onglet de la feuille - "visualiser le code""

Après la copie, modifie la valeur de FL1 et observe ce qui se passe....


VB:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = Range("Fl1").Address Then
    Application.EnableEvents = False
    If Range("FL1").Value >= Range("DC5").Value Then
        Range("DC5").Value = Range("FL1").Value
       Application.EnableEvents = True
        Call MaMacro(Range("DC5"))
        Exit Sub
    End If

    If Range("FL1").Value <= Range("FO5").Value Then
        Range("FO5").Value = Range("FL1").Value
        Call MaMacro(Range("FO5"))
        Application.EnableEvents = True
        Exit Sub
    End If
    Application.EnableEvents = True
End If
 
End Sub
'-----------------------------------------------
Sub MaMacro(Rg As Range)

Select Case Rg.Address(0, 0)
    Case Is = "DC5"
        MsgBox "voici la nouvelle valeur maximale de N est : " & Rg.Value
    Case Is = "FO5"
        MsgBox "voici la nouvelle valeur minimale de N est : " & Rg.Value
End Select

End Sub
 
Dernière édition:
Re : Pb de réalisation de macro

Merci pour la rapidité de réponse, en fait le code ci-dessus me permet de modifier les valeurs des extrémités lorsqu'elles sont dépassées mes pas de réinitialiser la borne opposé, je m'explique :
le but de l'exercice et d'étudier les "vagues" d'une courbe de marché N étant donc un prix qui varie entre des min et max locaux
ainsi lorsque un des extremum est dépassé cela signifie que l'on se trouve dans une nouvelle vague et donc que l'autre extremum sera changé également (...) Donc pour cela il faut que ma macro établisse l'action suivante :

Si N depasse la valeur de high (on entre dans une nouvelle vague ) donc la valeur de high est changé par celle de N et la valeur de low sera également changé est prendra la prochaine valeur quand le taux repassera sous la valeur de high. Evidement l'idéal serait qu'il en soit de meme pour les "low"...

Cela consiste en fait à une simple opération de comparaison et de remplacement mais qui me pose beaucoup de problème...

Merci cordialement,
 
Re : Pb de réalisation de macro

Moi, je ne comprends pas mais il y a plusieurs autres répondeurs sur ce groupe de discussion...
alors je passe la main.

P.S. Que tu dises ce à quoi sert la macro ne m'avance pas beaucoup dans le traitement
de l'information à effectuer.
Que doit-il se passer quand le maximum ou le minimum change? Tu veux effectuer des
opérations? Lesquelles? La description du mouvement des vagues n'est d'aucune utilité pour
moi.
 
Re : Pb de réalisation de macro

J'ai mis un fichier "exemple" pour montrer le fonctionnement attentu de la macro : dans ce fichier la macro fonctionne que pour la valeur High donc pour voir ce que j'aimerais qu'il se produise changer la valeur de N pour une plus grande valeur puis rediminuer...
 

Pièces jointes

Re : Pb de réalisation de macro

D'accord donc déjà avec un support ça sera plus facile 🙂
Ta macro la elle change les bornes lorsqu'elles sont dépassées maintenant il faudrait que lorsque l'on passe la borne l'autre borne se reinitialise.
Par exemple si high=140 low=130 pour N=150 on doit avoir high =150 et low prend la première valeur de N qui suivra et sera inférieur à 150 😀

Merci en tt cas...
 
Re : Pb de réalisation de macro

Ba oui je te donne un exemple de cas d'utilisation de la macro avec la valeur des cellules initial...
Lorsque tu as:
la cellules high=140
la cellule low= 130
Si tu mets 150 dans la cellule N ton programme te renvoit high=150
low=130
Moi j'aimerais que le low soit effacer et qu'il soit remplacé par la prochaine valeur de N qui sera inférieur à 150.

Dsl si je suis maladroit dans mon explication...
 
- 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

A
Réponses
12
Affichages
2 K
AnjyD
A
R
Réponses
3
Affichages
4 K
R
R
Réponses
0
Affichages
3 K
R
Retour