Intoppo .....
Lanciando questa Sub anche più volte cliccando sul tasto cui è assegnata opero l'elaborazione dei dati ed ottengo i valori previsionali (profile ) sempre costanti chiaramene a parità di input in foglio UserInput e idenico blocco di estrazioni, la rete si compora in maniera stabile.
Ciclando invece questa nuova Sub modificata per ovviare al blocco dell' End non ottengo i valori previsionali (profile ) costanti, chiaramente a parità di input in foglio UserInput e idenico blocco di estrazioni, la rete in questo caso si compora in maniera instabile incrementando di poco i valori di Output - Predicted ( foglio Calc cella af110 ) .
Considerando la tua pigrizia ti metto anche la sub ExitApplication.
Come vedi le prime 2 sub differenziano solo per il modo di uscita dalle stesse.
La domanda da profano è:
perchè a parità (relativamene alle mie conoscenze) di "costutti" i risultati sono diversi?
Inoltre, ti chiedo se esiste una istruzione da inserire a monte di Call Utilities.ExitApplication per idenificare la posizione in cui questa Sub agisce?
Io ho optato per un MsgBox fai da te, tipo "MsgBox ("Blocco riga 168 ")
grazie
Lanciando questa Sub anche più volte cliccando sul tasto cui è assegnata opero l'elaborazione dei dati ed ottengo i valori previsionali (profile ) sempre costanti chiaramene a parità di input in foglio UserInput e idenico blocco di estrazioni, la rete si compora in maniera stabile.
Codice:
Sub InputRead()
Call Utilities.UnLockApplication ' Sprotegge i fogli
Set UInput = ThisWorkbook.Worksheets("UserInput") ' UInput è il foglio UserInput
Set DataSheet = ThisWorkbook.Worksheets("Data")
Set FinalData = ThisWorkbook.Worksheets("Processed Data") ' FinalData è il foglio ProcessedData
Set Calc = ThisWorkbook.Worksheets("Calc")
Set OutputSheet = ThisWorkbook.Worksheets("Output")
Set ProfileSheet = ThisWorkbook.Worksheets("Profile")
Call InputCheck ' check dei dati nel foglio UserInput e richiamando l'istruzione NumberCheck
Call DataRead ' legge i dati nel foglio Data e li copia nel "Processed Data" 'normalizzandoli
Call FFBPdriver 'in Modulo Common,
MsgBox (" Built Model completato ")
Call Utilities.ExitApplication ' ( che comprende il famoso End)
End Sub
Ciclando invece questa nuova Sub modificata per ovviare al blocco dell' End non ottengo i valori previsionali (profile ) costanti, chiaramente a parità di input in foglio UserInput e idenico blocco di estrazioni, la rete in questo caso si compora in maniera instabile incrementando di poco i valori di Output - Predicted ( foglio Calc cella af110 ) .
Codice:
Sub MultiInputRead()
Call Utilities.UnLockApplication
Set UInput = ThisWorkbook.Worksheets("UserInput") ' UInput è il foglio UserInput
Set DataSheet = ThisWorkbook.Worksheets("Data")
Set FinalData = ThisWorkbook.Worksheets("Processed Data") ' FinalData è il foglio ProcessedData
Set Calc = ThisWorkbook.Worksheets("Calc")
Set OutputSheet = ThisWorkbook.Worksheets("Output")
Set ProfileSheet = ThisWorkbook.Worksheets("Profile")
Call InputCheck
Call DataRead
Call FFBPdriver
' Call Utilities.ExitApplication ' remmato e sostituto con solo
Call CleanUp 'pulisce le aree di lavoro liberare la memoria assegnata 'agli array dinamici e
Call LockApplication 'protegge tutti i fogli
End Sub
Considerando la tua pigrizia ti metto anche la sub ExitApplication.
Codice:
Sub ExitApplication() '
'Questa routine provvede a una uscita comune per l'intera applicazione. Prima di uscire libera
'la memoria assegnata agli array dinamici. Questo è molto importante. '«Se non liberiamo la memoria,
' dopo un paio di esecuzioni, la dimensione del file diventa enorme e Excel si arresta in modo anomalo.
Call CleanUp 'pulisce le aree di lavoro
Call LockApplication 'protegge tutti i fogli
End
End Sub
Come vedi le prime 2 sub differenziano solo per il modo di uscita dalle stesse.
La domanda da profano è:
perchè a parità (relativamene alle mie conoscenze) di "costutti" i risultati sono diversi?
Inoltre, ti chiedo se esiste una istruzione da inserire a monte di Call Utilities.ExitApplication per idenificare la posizione in cui questa Sub agisce?
Io ho optato per un MsgBox fai da te, tipo "MsgBox ("Blocco riga 168 ")
grazie
Ultima modifica: