Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
PRINCIPALE > ARTICOLO

Eseguire una ricerca veloce nell' archivio delle risorse di Visual Basic Italia®: 

Preso dall'archivio...

Premere il pulsante sotto per accedere direttamente ad un articolo o ad un esempio preso in modo casuale dall'archivio.



Ultimo e-book pubblicato:

"INTRODUZIONE AI CSS"

Lo scopo del CSS language è quello di controllare lo stile dei vari elementi che concorrono a formare un
documento HTML.
Si può operare in tre modi collegamento ad un foglio di stile esterno;definizione degli stili all'inizio
del documento utilizzo della proprietà style all'interno di un Tag HTML (embedded style). Questo e-book introduttivo
servirà per apprendere tali nozioni fondametali dei fogli di stile.

Prezzo: € 0.0.
Presentazione:
REAL SOFTWARE RILASCIA LA VERSIONE 5.0 di REALbasic per Windows






Gorizia, 5 maggio 2003 - Active, distributore in esclusiva di REALSoftware, Austin, Tx, annuncia la disponibilità di REALbasic 5.0 per Windows, uno strumento per lo sviluppo semplice da usare che permette agli utenti Windows di tutti i livelli di creare applicazioni personalizzate e di compilarle sia per la piattaforma Windows che per quella Macintosh.
[>>]

http://www.active-software.com

 

Contatti. Utilizzare l'email generica per domande relative al sito:
Porre domande relative al sito
oppure scrivere ad un responsabile di area.
Responsabile del sito: >Andrea Martelli
Responsabile area "Corso di VB":
> Giorgio Abraini

Visual Basic per Excel (tredicesima parte): l'oggetto Scenario e l'insieme Scenarios

Questa lezione, consultata da 6459 utenti, è stata giudicata di ottimi contenuti , con un'esposizione perfettamente comprensibile e con un livello di approfondimento sufficiente da 77 votanti.


L'oggetto Scenario e l'insieme Scenarios

L'oggetto Scenario, facente parte dell'insieme Scenarios e legato all'oggetto WorkSheet rappresenta uno scenario in un foglio di lavoro, ovvero un gruppo di valori detti celle variabili.
Uno Scenario è un insieme di valori che possono essere sostituiti automaticamente all'interno del foglio di lavoro e rappresenta un utile strumento (denominato "metodo con analisi what-if") per prevedere i possibili risultati di un foglio di lavoro: si può ad esempio considerare diversi gruppi di celle (più Range) di un foglio di lavoro, e quindi considerare ipotesi differenti passando a tali scenari per visualizzare i diversi risultati.
L'esempio riportato dalla guida in linea di MS Excel è esplicativo:

"[…] Se ad esempio si desidera creare un bilancio, ma le entrate non sono certe, è possibile definire diversi valori delle entrate e passare da uno scenario all'altro per effettuare un'analisi per ipotesi.

È possibile denominare lo scenario dell'esempio precedente "Caso peggiore", impostare il valore nella cella B1 a L. 5.000.000 e il valore nella cella B2 a L. 1.320.000. Il nome del secondo scenario potrebbe essere "Caso migliore", il valore in B1 L. 15.000.000 e il valore in B2 L. 2.600.000. […]"


All'interno dell'insieme Scenarios (definito oggetto-insieme in quanto anch'esso rappresenta un'oggetto a sé stante), ogni Scenario è dotato di indice.
Per indicare così un particolare Scenario si indicherà:

Scenarios(indice_scenario)

dove indice_scenario rappresenta proprio l'indice dello Scenario.
Per poter creare un nuovo Scenario per il foglio di lavoro (foglioExcel) correntemente utilizzato ed aggiungerlo col relativo indice all'insieme Scenarios, si utilizza il metodo Add, la cui sintassi è la seguente:

FoglioExcel.Scenarios.Add(nome, celle_variabili, valori, commento, bloccato, nascosto)

dove nome indica naturalmente il nome in formato String che si desidera assegnare al nuovo scenario (il nome dello Scenario deve essere unico, quindi se si tenta di creare uno Scenario con un nome già in uso si avrà un errore) celle_variabili è un valore di tipo Variant che indica il Range ossia il gruppo di celle da associare all'oggetto Scenario, valori indica invece una matrice che contenga i valori da assegnare alle celle del Range indicato.
Se valori viene omesso allora si utilizzeranno i valori correnti contenuti correntemente all'interno delle celle indicate.
Commento è invece una dato di tipo String che indica un commento personalizzato che è possibile assegnare al particolare Scenario di nuova creazione.
Se viene indicato un commento valido, quando viene aggiunto un nuovo scenario il nome dell'autore e la data vengono automaticamente aggiunti all'inizio del relativo commento.
Bloccato indica se lo Scenario verrà bloccato (True) o meno (False) per permettere o impedire a qualsiasi utente del foglio di lavoro di modificare i valori dello Scenario stesso.
Infine nascosto indica se lo Scenario verrà mantenuto invisibile (True) o meno (False).

Per comprendere l'utilità del metodo si consideri il seguente esempio:
in un foglio di calcolo sono stati immessi i valori relativi a diversi accessori di computer:

La tabella sopra può essere generata nel seguente modo:

With foglioExcel
.Cells(1, 1).Value = "Componente": .Cells(1, 2).Value = "Prezzo in €"
.Cells(2, 1).Value = "RAM 128MB": .Cells(2, 2).Value = "78"
.Cells(3, 1).Value = "RAM 512MB": .Cells(3, 2).Value = "258"
.Cells(4, 1).Value = "RAM 256MB": .Cells(4, 2).Value = "141"
.Cells(5, 1).Value = "HD 20GB": .Cells(5, 2).Value = "165"
.Cells(6, 1).Value = "CD-ROM 48X": .Cells(6, 2).Value = "75"
.Cells(7, 1).Value = "Monitor 17'1": .Cells(7, 2).Value = "240"
End With

Siccome questi sono i dati originali, salviamoli come primo scenario in quanto successivamente le celle verranno modificate automaticamente. Si applicherà dunque il metodo Add alle celle dei valori numerici ossia B2-B7 assegnando allo Scenario il nome "Ipotesi originale" ed il commento "Questo è lo scenario originale":

foglioExcel.Scenarios.Add "Ipotesi originale", foglioExcel.Range("B2:B7"), _
"Questo è lo scenario originale.", True

Con il valore True si indica il blocco dello scenario da eventuali modifiche.
Il codice appena visto corrisponde all'esecuzione della finestra Excel "Aggiungi scenario", raggiungibile dal menu Strumenti >> Scenari:

Adesso è possibile fare una prima prova contando gli Scenari presenti nell'insieme Scenarios utilizzando così il metodo Count dell'insieme-oggetto Scenarios:

MsgBox foglioExcel.Scenarios.Count

Il risultato sarà naturalmente 1.
Ora utilizzando le proprietà Name, Comment, Index, Hidden e Locked si può determinare le proprietà di tale Scenario, proprietà che erano state impostate al momento della creazione:

Totale_Scenari = foglioExcel.Scenarios.Count
For ii = 1 To Totale_Scenari
MsgBox "Nome: " & foglioExcel.Scenarios(ii).Name & vbCrLf & _
"Commento: " & foglioExcel.Scenarios(ii).Comment & vbCrLf & _
"Nascosto? " & foglioExcel.Scenarios(ii).Hidden & vbCrLf & _
"Indice: " & foglioExcel.Scenarios(ii).Index & vbCrLf & _
"Bloccato? " & foglioExcel.Scenarios(ii).Locked & vbCrLf
Next ii

Queste sono solo alcune delle proprietà di cui l'oggetto Scenario dispone, le uniche che possano essere visualizzate in una finestra di messaggio. In aggiunta esistono ulteriori proprietà tra cui le più significative sono: ChangingCells che come visto poco fa restituisce un oggetto Range con le celle variabili in esso contenute, la proprietà Values che restituisce una matrice contenente i valori correnti delle celle variabili dello scenario, la proprietà Creator (che comunque sarebbe stato possibile visualizzare nella finestra di messaggio) che restituisce l'applicazione che ha creato l'oggetto, sottoforma di intero a 32 bit. Ad esempio se l'oggetto è stato creato da MS Excel come nel caso preso in esame, si otterrà stringa XCEL, corrispondente al valore esadecimale 5843454C.

Si provi adesso a creare un secondo Scenario utilizzando valori differenti da quelli indicati poco fa come originali ad esempio valori 75, 250, 153, 82, 260 come componenti di una matrice di valori, ed associare al nuovo Scenario il nome "Ipotesi 1" ed il commento "Questa è la prima ipotesi".
Il valore di blocco dello Scenario sarà anche questa volta impostato su True:

foglioExcel.Scenarios.Add "Ipotesi 1", foglioExcel.Range("B2:B7"), _
Array(75, 250, 153, 82, 260), "Questo è la prima ipotesi.", True

Si noterà che è stato utilizzato lo stesso Range dello Scenario originale (B2:B7) per permettere ai valori di occupare le caselle dove nell'ipotesi originale erano contenuti i prezzi in euro. Una seconda cosa da notare è che gli elementi della matrice sono 5 e non 6 come i componenti nella lista perché si suppone che ad esempio il costo dell'ultimo elemento, il monitor, sia certo.
Ora si riapra nel foglio di lavoro la finestra "Gestione scenari": ciccando su "Riepilogo…" si otterrà la lista degli scenari creati:

Si crei un terzo scenario inserendo questa volta i valori 60, 278, 139, 64, 250, inclusi sempre in una matrice di valori ed assegnandogli il nome "Ipotesi 2", il commento "Questa è la seconda ipotesi" e impostando la proprietà Locked su True:

foglioExcel.Scenarios.Add "Ipotesi 2", foglioExcel.Range("B2:B7"), _
Array(60, 278, 139, 64, 250), "Questo è la seconda ipotesi.", True

Ora si può passare agilmente da uno Scenario all'altro semplicemente utilizzando il metodo Show dell'oggetto Scenarios ed indicando l'indice dello Scenario da visualizzare (1 per "Ipotesi originale", 2 per "Ipotesi 1" e 3 per "Ipotesi 2").
Se si inserisce nel progetto un oggetto CommandButton per ogni Scenario si può passare da uno Scenario all'altro con la pressione del tasto corrispondente:

Private Sub Command1_Click()
foglioExcel.Scenarios(1).Show
End Sub
Private Sub
Command2_Click()
foglioExcel.Scenarios(2).Show
End Sub
Private Sub Command3_Click()
foglioExcel.Scenarios(3).Show
End Sub

Questo è lo Scenario visualizzato alla pressione di Command1:

questo è lo Scenario visualizzato premendo Command2:

e questo è lo Scenario visualizzato premendo Command3:

Per finire si può creare un nuovo foglio di lavoro contenente un rapporto di riepilogo degli scenari presenti nel foglio di lavoro corrente attraverso il metodo CreateSummary. Si inserisca sul piano un quarto controllo CommandButton:

La prima colonna indica le celle variabili, la seconda i valori correntemente visualizzati sul foglio di lavoro mentre tutte le successive rappresentano i valori contenuti nei rispettivi Scenari.