Améliorer une macro

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

T

thestefs

Guest
Bonjour à tous,

Voici une macro qui permet de mettre la valeur "TRIR" à 0
Le point c'est que j'aimerais que cette valeur soit comprise entre -0,001 et 0,001

Que dois je changer ? Je pense que c'est dans les lignes en gras

Merci beaucoup,

Stéphane




Sub XXX()

Application.ScreenUpdating = False

For i = 1 To 3

Range("PG" & i).Value = 90

If Range("TRIR" & i).Value > 0.5 Then
Increment = 15
Else
Increment = 15 / 10
End If

Do While Range("TRIR" & i).Value <> 0

If Range("TRIR" & i) > 0 Then

Range("PG" & i).Value = Range("PG" & i).Value - Increment
Calculate
If Range("TRIR" & i) < 0 Then
Increment = Increment / 2
End If
End If


If Range("TRIR" & i) < 0 Then

Range("PG" & i).Value = Range("PG" & i).Value + Increment
Calculate
If Range("TRIR" & i) > 0 Then
Increment = Increment / 2
End If
End If


Loop

Next

Application.ScreenUpdating = True

End Sub
 
Re : Améliorer une macro

Bonsoir

Sans le fichier avec les données il n'est pas toujours facile de trouver la partie de code défectueuse.
Pour retrouver ce type d'erreur il faut suivre la procédure en mode pas à pas et voir l'évolution du contenu des variables en posant des espions et des points d'arrêt.

JP
 
Re : Améliorer une macro

Bonsoir,

C'est bien d'être impatient......

Cependant, comme demandé dans un autre forum, on te demande ce que veut dire "TRIR", mais aussi Range("PG" & i)....

A priori, tu travailles sous Excel 2003, donc ce n'est pas une colonne.....

Aides-toi, Aides-nous, et nous t'aiderons, le degré d'urgence n'est pas prépondérant.....
 
Dernière édition:
Re : Améliorer une macro

Bonjour à tous,

Thestef, si ton algorithme est une algorithme de tri, tu peux
aller voir sur wikipedia :

Tri de Shell

Tu y trouveras des exemples en C, en Pascal, Java et C#.

Si ça ne correspond pas à un tri, il vaut mieux répondre en joignant un fichier, comme le dit jp14, et nous expliquer ce qu'est cette variable TRIR.

Cordialement
 
Re : Améliorer une macro

Bonjour à tous,

merci pour vos premières réponses et désolé d'être aussi impatient

TRIR, PG ... sont juste des noms que j'ai donnés à mes cellules.

La macro marche très bien mais est beaucoup trop longue (1min). Je me suis aperçu que la valeur cible recherchée pour la cellule TRIR est 0 au sens "pur" du terme, à savoir 0,0000000000000000000000000000 moi je veux juste que ça s'arrête si ça trouve -0,001<TRIR<0,001

Pour faire simple on va dire que j'essaie de bouger la valeur PG (chiffre d'affaire) pour obtenir un TRIR à 0 (Valeur actualisée de mes dividendes).
 
Re : Améliorer une macro

salut le forum,

je pense qu'il faut que tu remplace
Do While Range("TRIR" & i).Value <> 0
par
Do While Range("TRIR" & i).Value < -0.001 Or Range("TRIR" & i).Value > 0.001

mais comme dit plus haut, c'est assez vague, un bout de fichier ne ferait pas de mal 🙂

a+
 
Re : Améliorer une macro

Bonjour

Une piste

La sortie de la boucle se fait avec
Do While Range("TRIR" & i).Value <> 0, or la valeur est "comprise entre -0,001 et 0,001",
Il faudrait faire un test qui positionne une variable booléenne à true si l'écart entre la variable et 0 est égal à 0,01 et utiliser la viable pour la sortie de la boucle.

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

Réponses
5
Affichages
932
Réponses
15
Affichages
830
Réponses
2
Affichages
530
Réponses
4
Affichages
743
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour