frontiera efficiente vba excel



  • frontiera efficiente vba excel
    di gianpiero75 data: 26/11/2013 18:36:49

    salve raga, buonasera a tutti, sono nuovo del forum e anche di VBA.
    ho questo problema, devo sviluppare un modellino per il calcolo della frontiera efficiente ( ottimizzazione di portafogli) con il risolutore di excel e VBA.
    La cella obbiettivo contiene una formula, legata ad altre celle tra le quali quelle di cui cambiare il valore.
    Inoltre il codice contiene tre vincoli tra i quali uno é quello che chiede di minimizzare la cella obbiettivo dato un valore del rendimento atteso.
    Il codice applicato una sola volta funziona.
    Il problema é che io vorrei eseguire più calcoli per avere un vettore di risultati, per diversi livelli di rendimento desiderato in modo da poter costruire la frontiera efficiente.
    Ho provato a scrivere questo ciclo che vi allego, ma non funziona, il programma va in loop e visualizza continuamente il mex ( troppe celle variabili).
    Potete aiutarmi? é una settimana che ci sbatto, ma sono un novellino in VBA....e sinceramente non so proprio come fare.
    Io spero di essere riuscito almeno a spiegarmi perché nemmeno quello é semplice. volevo allegre uno screenshot del file per essere più chiaro ma mi sembra non si possa...
    Grazie in anticipo
     
    Private Sub CommandButton1_Click()
    
    For j = 2 To 20
    
    solverok setcell:="b12" & j, maxminval:=2, bychange:="d12:r12" & j
    'inseriamo i vincoli
    'vincolo no short selling
    solveradd cellref:="d12:r12" & j, relation:=3, formulatext:=0
    'vincolo del rendimento desiderato
    solveradd cellref:="c12" & j, relation:=3, formulatext:="a12" & j
    'vincolo di bilancio tutto viene investito
    solveradd cellref:="s12" & j, relation:=2, formulatext:="c5"
    'risolvi e senza mostrare la finenstra di dialogo
    solversolve userfinish:=True
    solverfinish keepfinal:=1
    Next j
    End Sub