boucle de calcul par valeur cible

pounce

XLDnaute Nouveau
Bonjour a tous,
je suis débutant en VB et j'ai besoin de creer une boucle pour finaliser un programme de calcul. mon probleme et que je veut ceer une boucle pour calculer via une valeur cible des donnée comprise en une cellule de la colonne AH nommée dessusAH et une autre nommée sousAH la cellule a definir est dans la colonne AH la valeur a atteindre est la cellule situé sur la meme ligne en AE et la cellule a modifier est la cellule situé sur la meme ligne en AI. Ceci etant dit la formule VB de la valeur cible je sais la faire mais le souci est la boucle car il y a une macro qui insere des nouvelle ligne entre la cellule nommée dessusAH et celle nommée sousAH d'ou la necessité d'une boucle que je ne sais pas faire :D

merci a tous
 

deudecos

XLDnaute Impliqué
Re : boucle de calcul par valeur cible

Bonjour a tous,
je suis débutant en VB et j'ai besoin de creer une boucle pour finaliser un programme de calcul. mon probleme et que je veut ceer une boucle pour calculer via une valeur cible des donnée comprise en une cellule de la colonne AH nommée dessusAH et une autre nommée sousAH la cellule a definir est dans la colonne AH la valeur a atteindre est la cellule situé sur la meme ligne en AE et la cellule a modifier est la cellule situé sur la meme ligne en AI. Ceci etant dit la formule VB de la valeur cible je sais la faire mais le souci est la boucle car il y a une macro qui insere des nouvelle ligne entre la cellule nommée dessusAH et celle nommée sousAH d'ou la necessité d'une boucle que je ne sais pas faire :D

Je ne sais pas pour les autres mais moi je n'ai pas réussi à lire jusqu'au bout sans avoir préalablement oublié le début... Donc, si tu avais un exemple plus concret comme un fichier joint sous la main... ça aiderait je pense.

Bonne journée

Olivier
 

pounce

XLDnaute Nouveau
Re : boucle de calcul par valeur cible

il est vrai que moi-même je ne me suis plus compris apres manger :D... donc je mets le fichier en piece jointe... g du envoyer seulemnt la feuille concerné car sinon c'était bien trop gros dc ne vous inquiété pas pour les référence inconnu
en tout cas merci d'avoir répondu si vite :)
 

Pièces jointes

  • Evacuation EU-EV v0321.zip
    43.3 KB · Affichages: 109

Guillaumega

XLDnaute Impliqué
Re : boucle de calcul par valeur cible

Bonjour,

Voici mon code pour faire des sensibilités par valeur cible. Je l'ai commenté pour que vous le compreniez facilement. Attention, je ne l'ai pas adapté à votre programme.

A+
Guillaume

Code:
Private Sub Sensibility_Click()
    Application.ScreenUpdating = False
    Dim a As Double
    a = Worksheets("CapEx & Charges").Range("entry_price").Value
    ' tu mets dans des variables les paramètres
    
    For i = 0 To 5
        Worksheets("CapEx & Charges").Range("B3").GoalSeek Goal:=(0.2 + i / 50), ChangingCell:=Worksheets("CapEx & Charges").Range("entry_price")
    'ca c'est la valeur cible. On fait bouger le résultat par valeur cible et on recherche tous les 1/50èmes avec la boucle for
    
    'une fois le paramètre bougé par valeur cible, je fais un ou des copier/ coller valeurs
        Worksheets("CF").Range("profit").Copy
        Worksheets("Sensibilité").Range("d6").Offset(i * 5).PasteSpecial xlPasteValues
    'je décale de 5 cases vers le bas avant de faire une nouvelle boucle.
        Next
      
    Worksheets("CapEx & Charges").Range("entry_price").Value = a
    'une fois la table constituée, je remets mon paramétrage d'origine
    
    Application.CutCopyMode = False
End Sub
 
Dernière édition:

pounce

XLDnaute Nouveau
Re : boucle de calcul par valeur cible

Re bonjour,
tout d'abord merci pour ta réponse guillaume en farfouillant ton code j'ai réussit a faire ce que je voulais. pour info si cela peut servir quelqu'un un jour voici mon code:
Code:
Private Sub Worksheet_Activate()

For i = 1 To 1000
If Range("dessusAH").Offset(i) <> Range("sousAH") Then
Application.EnableEvents = False
Range("dessusAH").Offset(i).GoalSeek Goal:=Range("dessusAH").Offset(i, -3), ChangingCell:=Range("dessusAH").Offset(i, 1)
Application.EnableEvents = True
    End If
    Next
End Sub


A+
POUNCE
 

Discussions similaires

Réponses
4
Affichages
167

Statistiques des forums

Discussions
312 338
Messages
2 087 396
Membres
103 537
dernier inscrit
alisafred974