Améliorer une macro

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

Bonsoir,

Je ne saisis pas ce que tu veux faire au vu de tes explications. A quoi correspond PG et TRIR ?

Je ne vois pas comment tu mets TRIR à 0 dans ton code comme tu le dis dans ta demande.

A te relire

Dan

Bonsoir,

Euh, le range("TRIR".....) représente quoi?

une formule?

une cellule?

Précise un peu, et mieux, mets un fichier exemple, mais de préférence en partant de la colonne "A", c'est plus facile pour faire des essais......(on n'est pas obligé de se déplacer vers la colonne "PG"......

Bonne soirée

re,

Oui Felix. Comme toi ce PG m'intrigue aussi et ce, d'autant que thestefs est sous Excel 2003

Dan

Re-,

Salut Dan

Tout à fait, mais on ne sait jamais, parfois quelques excelnautes d'excellence arrivent à nous faire des fichiers de l'espace-temps, avec plusieurs millions de lignes, et un tout petit peu moins de colonnes.....

Attendons.....

Bonne soirée

Bonjour à tous,

merci pour vos premières réponses

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,

Dans ta macro l'instruction Range("PG" & i).Value = 90 veut dire cellule PG et valeur de i.

Si i=3, la cellule PG3 vaut 90. Cela renvoie évidemment une erreur.

Si PG est la cellule A1 par exemple, pourquoi ne pas avoir écrit Range("A" & i)

Pas possible de t'aider sans voir un fichier ou avoir plus d'explications ou un fichier.

A te relire

Dan

Rechercher des sujets similaires à "ameliorer macro"