Excel Macro deCalcul puis copie des résultats

Résolu
rhad -  
 rhad -
Bonjour,


J'ai réalisé une feuille de calcul plutôt complexe qui utilise le solveur pour donner les résultats.

Cependant, je ne peux faire les calculs que pour un jeu de paramètre à la fois.

Aussi, sur une autre feuille, j'ai mis les paramètres en colonne, j'ai fais une macro qui va copier les paramètres dans la feuille de résolution et qui doit me retourner les résultats en copie avant de passer à la colonne suivante. C'est là que je bloque. Comment faire pour qu'Excel copie les paramètres de la colonne A dans le solveur avant de me copier les résultats du calcul A puis passer à la colonne B pour calcul B etc

Si quelqu'un a une idée, je suis preneur!

Bonne journée,

rhad
A voir également:

2 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonsoir,

Pour avoir toutes les fonctions s'y rapportant, dans l'aide VBA fais une recherche sur : solver

A cette adresse un exemple de solver en VBA.

Pour copier tes valeurs c'est :
cellule destination = cellule source
ex:
Feuil1.[C3]=Feuil2.[B2]


eric
0
rhad
 
On s'est mal compris. Le solver fonctionne. Mon problème c'est la copie avec incrémentation d'une colonne par cas.

Ex :

Pour certains paramètres, mon solver retourne des résultats :

SOLVER Xp1 Xp2 Xp3 -> Xr1 Xr2 Xr3

Afin d'éviter de mieux visualiser les variations, j'ai une feuille comme suit :

!A ! B ! C !
!Ap1 ! Bp1 ! Cp1 !
!Ap2 ! Bp2 ! Cp2 !
!Ap3 ! Bp3 ! Cp3 !

Là je voudrais faire une macro qui va copier les paramètres de A dans le solver, le faire tourner et ensuite copier les résultats en dessous des paramètres de A avant de passer à B puis C...
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Ah, ok
Dans ce cas :
Sub test() 
    Dim sh1 As Worksheet, sh2 As Worksheet, col As Long 
    Set sh1 = Worksheets("Feuil1") 
    Set sh2 = Worksheets("Feuil2") 
    For col = 1 To sh2.[A1].End(xlToRight).Column 
        ' copier 3 valeurs de Feuil2 en Feuil1 
        sh1.Range("A1:A3") = sh2.Cells(1, col).Resize(3, 1).Value 
        ' là tu mets les instructions qui vont bien pour le solveur 
        ' 
        ' copier 1 valeur de Feuil1 en Feuil2 
        sh2.Cells(4, col) = sh1.[A4] 
    Next col 
End Sub

te copie successivement les lignes 1 à 3 de chaque colonne de Feuil2 dans la colonne A de Feuil1, puis te ramene la valeur en A4 de Feuil1 dans la colonne concernée en Feuil2 ligne 4.

eric
0
rhad
 
Impeccable! Merci bien!
0