Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Macro con Risolutore e ciclo For

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] Macro con Risolutore e ciclo For

Postdi donaldtheblack » 30/12/13 10:17

Ciao,
stavo cercando di risolvere un problema con una macro e mi sono imbattuto nel vostro Forum che mi sembra davvero ben fatto.
Avrei bisogno di una mano per creare una macro che utilizzi il Solver per risolvere un sistema di 3 equazioni non lineari in 3 incognite.
In particolare, a partire dalla Macro (che funziona!),

Sub Prova()
SolverOk SetCell:="$V$3", MaxMinVal:=3, ValueOf:=0, ByChange:="$J$3:$L$3", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="$V$3", MaxMinVal:=3, ValueOf:=0, ByChange:="$J$3:$L$3", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve
End Sub

volevo aggiungere un ciclo FOR per estendere il calcolo a un numero maggiore di righe. Per ora ho scritto

Sub Sistema()
For i = 3 To 8
SolverOk SetCell:="$V$" & i, MaxMinVal:=3, ValueOf:=0, ByChange:="$J$" & i:"$L$" & i, _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="$V$" & i, MaxMinVal:=3, ValueOf:=0, ByChange:="$J$" & i:"$L$" & i, _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve UserFinish:=True
Next i
End Sub

Ma continua a darmi Errore di Sintassi e non capisco proprio il perchè. Immagino abbia sbagliato qualcosa nella definizione delle celle (in particolare nel ByChange...)
Sperando di essere stato chiaro nel porre la domanda, vi chiedo se potreste darmi una mano per favore?
Grazie
donaldtheblack
Newbie
 
Post: 3
Iscritto il: 30/12/13 09:59

Sponsor
 

Re: [Excel] Macro con Risolutore e ciclo For

Postdi Flash30005 » 30/12/13 11:05

Ciao Donaldtheblack e benvenuto nel Forum
prova così
Codice: Seleziona tutto
Sub Sistema()
 For i = 3 To 8
 SolverOk SetCell:="$V$" & i, MaxMinVal:=3, ValueOf:=0, ByChange:="$J$" & i & ":$L$" & i, Engine:=1, EngineDesc:="GRG Nonlinear"
 SolverOk SetCell:="$V$" & i, MaxMinVal:=3, ValueOf:=0, ByChange:="$J$" & i & ":$L$" & i, Engine:=1, EngineDesc:="GRG Nonlinear"
 SolverSolve UserFinish:=True
 Next i
End Sub


ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] Macro con Risolutore e ciclo For

Postdi donaldtheblack » 30/12/13 11:39

Funziona!
Mi hai tolto davvero da un problemaccio (almeno per me)... Grazie mille! :)

PS se posso chiederti ancora, più che altro una curiosità, che cosa intendeva VBA con il ,_ nel codice (dopo ByChange per intendersi) ?
Grazie ancora, buona giornata e auguri di buon anno!
donaldtheblack
Newbie
 
Post: 3
Iscritto il: 30/12/13 09:59

Re: [Excel] Macro con Risolutore e ciclo For

Postdi Flash30005 » 30/12/13 13:14

Il tuo codice era errato
Codice: Seleziona tutto
ByChange:="$J$" & i:"$L$" & i

per costruire una stringa con una variabile devi inserire la stringa all'interno delle virgolette e la variabile concatenata con la &
la prima parte era corretta
Codice: Seleziona tutto
ByChange:="$J$" & i
ma i due punti vanno all'interno della stringa
Codice: Seleziona tutto
 ":$L$"
e quindi concatenare la variabile i con la &
Codice: Seleziona tutto
ByChange:="$J$" & i & ":$L$" & i

altrimenti va in errore
ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] Macro con Risolutore e ciclo For

Postdi donaldtheblack » 30/12/13 14:53

Perfetto. Grazie, anche per la spiegazione!
Ciao
donaldtheblack
Newbie
 
Post: 3
Iscritto il: 30/12/13 09:59

Re: [Excel] Macro con Risolutore e ciclo For

Postdi Anthony47 » 30/12/13 23:51

Mentre la sequenza "Sottolineato + A-Capo" consente di continuare l' istruzione sulla riga successiva, migliorando in taluni casi la leggibilita' del codice.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Macro con Risolutore e ciclo For":


Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti