Logo Einstein grigio sfumato
e = m x c al quadrato

Giochiamo a Tombola con Excel

Giocare a tombola con Excel fino a 6 pc con supporto vocale che ripete a voce i numeri estratti. Tutorial completo per sviluppare l'applicazione da voi stessi.




Il primo passo è quello di disporre i 90 numeri sulle 6 schede del tabellone che farà da "banco" e dal quale verranno eseguite le estrazioni.

Apriamo un foglio vuoto in Microsoft Excel e ci posizioniamo subito nella casella C2.

Lasciando un margine a sinistra di 2 colonne sarà dalla terza ('C') alla undicesima ('K') colonna e dalla riga numero 2 alla riga numero 24 che disporremo le 6 cartelle (lasciando una riga di spazio tra una cartella e la successiva).

Selezioniamo quindi il range (intervallo) di colonne "C:K" e impostiamone la larghezza di ciascuna colonna a 8,43. Menù Formato, sottomenù Colonna, poi Larghezza.

Selezioniamo quindi le righe 2, 3 e 4 e allo stesso modo ne impostiamo l'altezza a 40 punti. Menù Formato, sottomenù Riga, poi Altezza.

Per selezionare un intervallo di colonne o di righe bisogna fare clic senza rilascio con il tasto sinistro del mouse (aggangiare) sul bordo grigio che contiene le lettere o i numeri in corrispondenza della prima colonna o riga, quindi "trascinare" a destra o in basso fino a comprendere l'ultima colonna o riga dell'intervallo, a questo punto si può rilasciare il mouse e andare a modificare la larghezza e l'altezza come abbiamo visto sopra.

Selezioniamo nuovamente le colonne da C a K e questa volta impostiamo il carattere Arial a 22 punti, applichiamo il grassetto e centriamo.

Proviamo ad introdurre il numero 1 nella cella C2 e quindi disegniamo il bordo della prima cartella: selezioniamo le celle C2:K4 come nella figura sotto quindi cerchiamo nella barra di formattazione il pulsante per impostare i bordi.

In alternativa potete fare clic sul menù Formato, quindi su Celle, e infine sulla sottoscheda Bordo della finestra di dialogo e impostare 'bordato'.

Il risultato è quello mostrato in figura 1 : ora il foglio di Excel vi dovrebbe apparire a quadrettoni larghi e con il numero 1 nella prima casella della prima scheda.
Su ciascuna delle 6 cartelle dovremo posizionare 15 numeri e 12 caselle bianche per totale di 27: difatti 3 righe per 9 colonne fa 27 celle.

I 15 numeri di ogni cartella dovranno essere generati e disposti secondo precise regole in modo da dare le stesse probabilità di vincita a ciascuna delle 6 schede.

6 schede x 15 numeri fa 90. Un giocatore può acquistare da un minimo di 1 ad un massimo di 3 schede ovviamente. Il gioco ha senso se ci sono almeno 2 giocatori. Il numero massimo di giocatori è pari a 6 perché 6 sono le schede.

Le regole da rispettare rigorosamente sono queste:

1. Per ogni riga di ciascuna cartella (che contiene 9 celle) non dovranno esserci mai più di 5 numeri.

2. Nella prima colonna di ciascuna cartella dovranno comparire soltanto numeri appartenenti alla prima decina con esclusione del numero 10, quindi 9 in totale (da 1 a 9).

3. Dalla seconda alla ottava colonna di ciascuna cartella dovranno apparire esclusivamente i dieci numeri della relativa decina: ad esempio nella seconda colonna solo i numeri da 10 a 19, nella terza i numeri da 20 a 29 e così via fino alla ottava per i numeri da 70 a 79.

4. Nell'ultima colonna (la nona) di ciascuna cartella potranno apparire i numeri dell'ultima decina compreso il numero 90, per un totale quindi di 11 numeri.

Ora sappiamo come riempire le 6 cartelle ma ci occorrono 2 cose: una funzione generatrice di numeri random (casuali) in un dato intervallo e una macro che ci aiuti a disporre automaticamente i numeri estratti in quell'intervallo (per es. da 10 a 19) nelle 18 righe del cartellone procedendo dall'alto in basso, per colonna.

Non basta: occorre che la funzione generatrice "si ricordi" quali numeri casuali ha già estratto ad ogni nuova "estrazione" in modo da non generare 2 numeri identici.

Utilizzeremo la stessa funzione, che si chiama "GeneraNumero()" (vedi figura 2 ) sia nella fase di preparazione delle schede per il tabellone, sia durante il funzionamento del gioco della Tombola, per "estrarre" successivamente i 90 numeri.

Commentiamo per brevità d'ora in poi soltanto le funzioni e le macro cruciali, ilcodice completo lo potrete comunque scaricare dal nostro sito seguendo le istruzioni a fondo pagina.
Le istruzioni "chiave" della routine sono: "Randomize" e "Rnd".

Notiamo che la variabile N memorizza ad ogni esecuzione un numero casuale compreso tra DaNumero e Anumero (con Anumero sempre maggiore di DaNumero, naturalmente).

Randomize ha lo scopo di "azzerare" il generatore casuale del VBA e va utilizzata sempre prima di Rnd.

La funzione Rnd in realtà genera sempre un numero (non intero) compreso tra 0 e 1, moltiplicando una frazione per un intero otteniamo sempre un intero.

Questo significa in pratica che se, a titolo di esempio, DaNumero vale 10 e Anumero vale 19, nella variabile N la routine memorizzerà i numeri 10,11,12,13,14,15,16,17,18 o 19 ma non altri numeri diversi da questi e con un ordine, appunto, casuale, cioè ad ogni esecuzione della routine, il valore di N potrà essere uno di questi dieci numeri ma in precedenza non è dato sapere quale.

Perché abbiamo bisogno allora, dell'argomento di tipo vero o falso, NonEstratto ? Perché la funzione Rnd non ci assicura che vengano generati gli stessi numeri una sola volta, quindi abbiamo bisogno di un vettore esterno (NN) al quale viene aggiunto l'ultimo numero estratto ogni volta ed ogni volta si va a ricercare in questo vettore se il nuovo numero è già uscito oppure no.

La funzione infine ritorna -1 se l'ultima chiamata a Rnd ha generato un numero già presente nel vettore NN(): in questo caso la funzione verrà richiamata nuovamente fino a che non genererà un numero non ancora estratto, fino alla completa estrazione di tutti i numeri dell'intervallo.

Per esempio i numeri della prima colonna, da 1 a 9, vengono gestiti in questo modo:

Sub RiempiPrimaColonna()

'PER LA PRIMA COLONNA: 9 NUMERI (DA 1 A 9) E 9 SPAZI

Dim Dummy As Integer

start:

Dummy = GeneraNumero(1, 9, True)

If Dummy = -1 Then GoTo start:
' La routine esce soltanto quando viene generato un numero
' diverso da -1

End Sub

Veniamo ora alla Macro. La Macro di nome Macro3 (figura 3) si attiva premendo la combinazione di tasti 'CTRL + c' sulla tastiera e va richiamata per 9 volte, una per ciascuna colonna da 'C' a 'K' e sempre quando la cella attiva si trova sulla seconda riga.

In sostanta, la Macro3 dispone, colonna, per colonna, i 90 numeri sulle 6 cartelle assicurandoci che la regola delle decine per colonna sia rispettata, ma occorrerà successivamente intervenire manualmente per "risistemare" la distribuzione dei numeri e delle caselle bianche anche per riga, in modo da non avere più di 5 numeri su ogni riga ed esattamente 15 numeri per ogni cartella.

Il codice completo del primo Modulo (codice-macro-tombola-con-excel-1.txt) contiene il codice delle macro e delle routines necessarie alla preparazione del tabellone e alla disposizione dei numeri nelle 6 cartelle (compreso il generatore di numeri casuali) - vedi riquadro a fondo pagina.

Dopo avere eseguito la Macro3 (CTRL + c) su tutte e 9 le colonne, potreste ritrovarvi una situazione simile a quella della figura 4.

E' probabile che la sesta cartella contenga soltanto 2 numeri oppure che non ne contenga affatto.

Non spaventatevi: abbiamo un metodo anche per la fase manuale di "risistemazione", ecco come fare.

Posizionatevi al termine della prima riga, ed esattamente nella cella 'M2' ed introducete la formula: '=5-PERSONAL.XLS!ContaPerRiga(C2:K2)'.

Il nome del foglio di lavoro nel quale è contenuto il codice che avete incollato potrebbe essere diverso da PERSONAL.XLS, in tal caso sostituite il nome del foglio.

La Funzione ContaPerRiga() è contenuta nel codice che avete scaricato e altro non è che una personalizzazione della funzione standard Conta.Se di Excel.

Ricopiate la formula in tutte le righe successive fino alla riga 24. Lo scopo di questa funzione è di aiutarci nell'individuazione delle righe che contengono più o meno di 5 numeri.

Ora ci posizioniamo in C26 e vi introduciamo invece questa formula:
'=PERSONAL.XLS!ContaPerColonna(C2:C24)' e la ricopiamo anche nelle 8 colonne successive sulla stessa riga, infine nella cella M26 introduciamo la funzione '=SOMMA(C26:K26)'.

E' possibile che occorra ricalcolare i valori posizionandosi su ogni cella che contiene una formula e premere il tasto 'F2'.

Se nella cella M26 c'è un numero diverso da 90 (come nella figura 5) può darsi che manchi qualche numero: in tal caso basta individuare la colonna osservando i totali di riga 26 e richiamare nuovamente la macro 'Macro3' premendo 'CTRL + c' oppure inserendo il numero mancante a mano.

Nel nostro caso mancava il numero 2 che abbiamo inserito a mano successivamente in C24.

Ci portiamo ora in alto sulla prima riga della prima cartella. Tutte le righe che hanno un valore nella colonna M diverso da zero andranno "risistemate", quelle che hanno '0' invece vanno già bene così perché significa che ci sono 5 numeri per riga.

Analizziamo dall'alto verso il basso 3 righe di ogni cartella alla volta e "scambiamo" i numeri sempre tra le righe e mai tra le colonne, fino a quando nella colonna M gli indicatori non ci indicano '0' su ogni riga.

Se abbiamo più di 15 numeri nella cartella più in alto, spostiamo i numeri eccedenti sulla cartella numero 6, che di solito è sempre quella con meno numeri.

Se due righe contigue hanno in colonna M 2 totali diversi da zero ma di segno contrario (ad esempio -1 e +1, oppure -2 e +2) basterà scambiare 1 o 2 numeri tra queste 2 righe per andare a zero.

Per esempio nel nostro caso (vedi 2 figure in alto) la cartella 1 va sistemata aggiungendo sulle prime 2 righe 2 numeri dalla terza riga alle prime 2 (in questo modo le righe 1 e 2 avranno 5 numeri per riga e '0' in colonna 'M') e in terza riga resteranno solo 2 numeri eccedenti (M4=-2) che andranno spostati sulla cartella 6.

Ripetiamo il procedimento per tutte le cartelle, fino a che non avremo una situazione come quella della figura 6, nella quale tutte le righe hanno valore '0' in colonna 'M' e i totali di riga 26 sono in accordo con le regole (9 numeri in prima colonna, 11 in nona e 10 in tutte le altre) e in cella M26 c'è '90'.

A questo punto la prima fase è completata: tutte e 6 le cartelle sono pronte.

Ora passiamo allaseconda fase: quella della definizione dei controlli e delcodice necessario alla implementazione di tutte le funzionalità del "banco" o "cartellone" o applicazione server, compreso il supporto vocale.

Nella terza e ultima fase spiegheremo come ottenere una versione client da distribuire su ogni altro eventuale computer della rete locale corrispondente ad un giocatore diverso e soprattuttocome implementare le funzionalità di salvataggio automatico sul server e di aggiornamento collegamenti remoti sul client per poter far "giocare" effettivamente in tempo reale i giocatori.

Aggiungiamo 3 righe in testata, inseriamo il testo 'Ultima estrazione:' in C2, quindi allarghiamo la casella M2 e vi inseriamo 2 pulsanti di comando, il primo servirà per "estrarre" i 90 numeri ed il secondo per azzerare e ricominciare da capo il gioco in qualsiasi momento.

Aggiungiamo inoltre altri 2 fogli, o rinominiamo Foglio2 e Foglio3, rispettivamente 'Numeri estratti' e 'Impostazioni'.

Nella casella K2 impostiamo Arial 22, grassetto, colore di primo piano verde cipresso, lo stesso facciamo per le caselle A4, A9, A13, A17, A21 e A25, dove inseriremo i numeri identificativi di ogni scheda.

Nella casella K2 verrà visualizzato l'ultimo numero estratto, mentre in casella A2, per controllo, verrà indicato il numero delle estrazioni precedenti in ogni dato momento.

La figura 7 riproduce praticamente la cartella 'server' di nome 'Tombola con Excel' praticamente in versione definitiva.

Vediamo ora cosa succede quando il "banco" fa clic sul pulsante "Estrai".

Al pulsante va assegnata la routine 'Pulsante1_Clic()' contenuta nel secondo file da scaricare  (codice-macro-tombola-con-excel-2.txt) - vedi riquadro a fondo pagina.

Si consiglia disalvare questo codice con la cartella che starà sul server (pc del "banco").

Per assegnare una routine ad un pulsante basta selezionarlo, fare clic con il pulsante destro del mouse e dal menù popup contestuale selezionare la voce 'Assegna Macro'.

La routine può essere salvata in qualunque modulo, basta che sia dichiarata come 'Public' (se omesso è sottinteso), della cartella server.

In pratica Pulsante1_Clic svolge le seguenti funzioni:

1. Reinizializza il vettore dei 90 numeri, se necessario: il vettore è NN(1 TO 90) as Integer

2. Controlla quante estrazioni sono state effettuate nella "sessione" corrente (la sessione si conclude in 3 modi: quando sono stati estratti tutti i 90 numeri oppure quando qualcuno ha fatto tombola o quando il "banco" decide di azzerare e di ripartire).

La variabile che memorizza il numero delle estrazioni eseguite è 'LastPos' e viene memorizzata anche in cella A2.

Se si fa clic su 'Estrai' quando sono stati estratti tutti e 90 i numeri, allora viene visualizzato un messaggio e si procede con l'azzeramento di A2, K2 e dei dati del foglio 'Numeri usciti'.

3. A questo punto si procede con l'estrazione del prossimo numero, impiegando allo scopo la stessa routine che avevamo utilizzato durante la prima fase: GeneraNumero().

4. Se nella scheda 'Impostazioni' il parametro 'Pronuncia vocale' è impostato su '1', allora si procede con l'esecuzione sincrona di un file .wav esterno, il cui nome corrisponde con il numero estratto (tra un momento spiegheremo come preparare i file .wav e come eseguirli).

5. Sempre dall'interno della routine 'Pulsante1_Clic()' viene richiamata a questo punto un'altra importantissima SubRoutine: 'ControllaTutteLeSchede()'.

Il compito di questa Sub è quello di passare in rassegna tutte e 6 le cartelle, riga per riga, casella per casella, per verificare se il numero appena "estratto" è presente: in tal caso viene portato lo sfondo della casella a celeste per contrassegnarne il numero come "uscito" (al posto del riso o delle lenticchie come si usava nel mondo reale!).

Non è finita: la Sub 'ControllaTutteLeSchede', che a sua volta richiama 'ControllaScheda()', verifica anche se si è fatto AMBO, TERNO, QUATERNA, CINQUINA e infine se si è fatto TOMBOLA.

Quando si verifica uno di questi eventi, oltre che evidenziarlo in blu sulla colonna M in corrispondenza della scheda e della riga interessata, viene anche pronunciato il suono corrispondente mediante l'esecuzione di ambo.wav, terno.wav, quaterna.wav, cinquina.wav e tombola.wav.

6. Aggiorna il Foglio "Numeri usciti" dalla riga 2 alla riga 91 con il numero progressivo di ciascuna estrazione e il numero che è uscito in quella estrazione.

7. Infine viene visualizzato in K2 l'ultimo numero uscito, in A2 il numero di estrazioni totali e viene selezionata a cella K2.

Tutte queste informazioni saranno immediatamente "propagate" anche a tutti gli altri computer client che staranno eseguendo la versione client ("Tombola con Excel CLIENT.XLS") come vedremo.

Nel Foglio 'Numeri usciti' è sufficiente inserire in A1 'Estrazione' e in A2 'Numero': la prima riga non verrà sovrascritta.

Il Foglio 'Impostazioni' va impostato nel modo seguente (figura 8):

Come preparare la registrazione audio della pronuncia dei 90 numeri e delle parole 'Ambo', 'Terno', ecc..

E' sufficiente utilizzare il Registratore Suoni di Windows (Avvio, Programmi, Accessori, Svago, Registratore di Suoni) e l'uso di un comune microfono per pc per registrare la pronuncia di ogni numero da 1 a 90 con la vostra voce ed eventualmente aggiungere come commento la figura relativa della classica Smorfia napoletana.

Ricordatevi di salvare ogni registrazione (avete un massimo di 60 secondi) come file .wav.

Il nome di ciascun file wav deve essere il numero stesso seguito dall'estensione .wav, quindi ad esempio 1.wav, 2.wav fino a 90.wav.

Se volete risparmiarvi la fatica abbiamo preparato per voi un file zip già pronto per l'uso (suonitombolaexcel.zip - vedi riquadro in fondo alla pagina)

La qualità dell'audio non è eccezionale perché abbiamo utilizzato un normalissimo microfono, se ne avete uno ad alta sensibilità otterete senz'altro risultati migliori.

Un programma molto utile, e che abbiamo utilizzato anche noi per "tagliare" le inutili pause prima e dopo la "dizione" ed anche qualche rumore di disturno e il programma open source Audacity, scaricabile qui.

I file wav vanno scaricati in qualsiasi cartella dello stesso pc in cui funzionerà la cartella server 'Tombola con Excel.xls', ma occorre ricordarsi di specificare nel foglio 'Impostazioni', in corrispondenza del parametro 'Percorso Suoni', il relativo percorso appunto.

Per eseguire il file wav subito dopo avere estratto il numero, da Excel e via codice VBA, abbiamo pensato all'utilizzo di una semplice API (Application Program Interface), il cui nome è 'apiPlaySound', contenuta nella libreria di sistema 'winmm.dll' in dotazione a tutti i sistemi operativi windows.

La routine Pronucia Numero è riprodotta qui:

Sub PronunciaNumero(N As Integer)
Dim sFile As String
sFile = CStr(N) & ".wav"
EseguiWav sFile
End Sub

La routine EseguiWav, invece:

Sub EseguiWav(strFile As String)
Dim lngRet As Long
If strFile <> "" Then
FileWavInEsecuzione = PercorsoWav & "\" & strFile
lngRet = apiPlaySound(FileWavInEsecuzione, pcsSYNC)
End If
End Sub

Da notare che la variabile PercorsoWav contiene il valore che viene letto dal foglio Impostazioni e che il file .wav viene eseguito in modalità SINCRONA.

Questo significa che occorre attendere la fine del file audio, prima di procedere all'estrazione di un altro numero o prima di qualsiasi altra azione.

La scelta è stata dettata dalla necessità di fare udire anche la dizione delle frasi 'Ambo', 'Terno', ecc, suoni che vengono eseguiti immediatamente dopo quello dell'ultimo numero uscito (in modalità asincrona non si udiva l'ultimo numero uscito).

A questo punto potete giù iniziare a giocare, ma da soli! Avete tutto l'occorente per simulare tutte le giocate che volete, ma non avete ancora la funzionalità CLIENT-SERVER.

Il primo problema da risolvere è stato quello del salvataggio automatico dei dati nella cartella server.

Non so se in Excel 2007 è prevista, ma nelle versioni 2000 e 2002 non mi pare che esistesse questa funzionalità, presente invece in Word fin dalle prime versioni, a meno di una mia colossale svista.

In ogni caso per risolvere il secondo problema, quello dell'aggiornamento automatico dei riferimenti remoti nel foglio CLIENT, serviva comunque un meccanismo tipo TIMER e quindi ho pensato di svilupparla da zero.

La libreria che ho utilizzato è sempre la "winmm.dll", questa volta ho utilizzato la funzione timeGetTime() che non fa altro che restituire il numero di millisecondi trascorsi da quando è stato avviato Windows l'ultima volta.

Se volete inserire dei veri e propri oggetti timer autonomi in un foglio di excel, l'unico modo è incapsulare la funzione timeGetTime() in una classe (cTimer) e richiamarne un'istanza dall'interno di un oggetto UserForm (in pratica un controllo maschera) impostato per essere eseguito in modalità asincrona.

Ciò è necessario perché altrimenti tutti gli altri processi che avvengono nel foglio di calcolo verrebbero arrestati in attesa che qualcuno chiuda l'oggetto UserForm.

Per nasconderlo alla vista infine abbiamo impostato le coordinate top e left con numeri negativi.

Ora potete decompattare il file oggettidaimportaretombolaexcel.zip - vedi riquadro a fondo pagina - che contiene i 2 oggetti UserForm (del secondo non abbiamo ancora parlato, lo faremo tra poco), la classe Ctimer e il Modulo3 contenente il codice VBA per recuperare il Nome del Computer dal Registro di configurazione di Windows.

Ricordatevi di importare questi oggetti nel vostro progetto Excel per la parte server e ancheper la parte client.

Controllate le proprietà Left, Top e ShowModal di UserForm1 che devono essere impostate rispettivamente a -100, -100 e False.

L'oggetto UserForm1 non è gestibile direttamente dall'utente, il suo caricamento viene attivato al verificarsi della routine evento Workbook_Open() cioè quando viene aperta la cartella server la prima volta, mentre viene scaricato dalla memoria al verificarsi della routine evento Workbook_BeforeClose() quindi alla chiusura della cartella server.

Nella figura 9 potete vedere come effettuare queste impostazioni.

ATTENZIONE! Nei file che avete scaricato queste istruzioni non ci sono, quindi vanno fatte manualmente sulla vostra cartella server alla quale potete dare un nome qualsiasi, altrimenti non potrà essere possibile giocare a tombola in rete.

Il nome di riferimento per la nostra cartella server è : "Tombola con Excel.xls', per la nostra cartella client (il cui codice vi faremo scaricare per ultimo) invece è :  "Tombola con Excel CLIENT.xls

L'oggetto UserForm2, invece, è una finestra di dialogo che viene attivata dalla Macro12 contenuta in questo altreo file di codice,(codice-macro-tombola-con-excel-3.txt) - vedi riquadro in fondo alla pagina - da copiare e incollare nel vostro progetto come modulo separato.

All'interno dello UserForm2 è contenuto il codice necessario per richiamare le sub e le funzioni necessarie a fare visualizzare il Nome del Computer locale nel gruppo di lavoro corrente.

La Macro12 si attiva con la combinazione di tasti 'CTRL e s' (s minuscola) ed ha lo scopo di nascondere o visualizzare le schede relative alla postazione in uso, sia per il server che per i vari client.

L'oggetto UserForm2 è modale, quindi occorre chiuderlo prima di passare ad altro e va installato anche nel progetto CLIENT.

Cosa manca ancora? La cartella CLIENT! Che cos'è la cartella CLIENT e qual è il suo scopo?

La cartella CLIENT è una replica quasi esatta del "cartellone" o cartella SERVER nel senso che è dotata di tutte le funzionalità tranne di quella di estrazione dei numeri, come è naturale aspettarsi!

La cosa carina è che abbiamo previsto anche la possibilità di eseguire i file wav dal lato client: cioè anche i singoli giocatori che stanno sui loro pc in rete locale possono ascoltare i numeri che escono direttamente dalla scheda audio del loro pc.

Occorre ricopiare tutti i file .wav nella stessa cartella in cui risiede la cartella CLIENT.

Inoltre, essendo la cartella client completamente sincronizzata con quella server, possono vedere tutte e 6 le cartelle con i segnaposti-colore, gli ambi, i terni, ecc. oltre naturalmente la lista delle precedenti estrazioni.

E' raccomandabile comunque, per evitare confusione, di abilitare alla visualizzazione soltanto le schede che interessano la postazione client.

Il "banco" invece potrà tranquillamente mantenere sempre abilitate alla visualizzazione tutte e 6 le cartelle, oltre che decidere quando fare clic sul pulsante 'Estrai'.

E' possibile in definitiva installare 1 cartella server e 6 cartelle client che puntano tutte alla prima cartella su 6 pc differenti.

Naturalmente occorre che la cartella server risieda su di una cartella di windows condivisa.

In figura 10 vediamo come appare il foglio Schede della nostra applicazione CLIENT, che si chiama, lo ripetiamo, 'Tombola con Excel CLIENT.xls'.

Da notare che la casella K2, come del resto tutte le altre caselle dei fogli 'Schede' e 'Numeri usciti', contengono i riferimenti remoti alla cartella server, quindi è fondamentale controllare ed eventualmente reimpostare questi riferimenti facendo clic sul menù Modifica, voce Collegamenti.

La sintassi per il collegamento remoto in ogni caso &egrave:

'\\NomeComputerServer\NomeCartellaCondivisa\[Nome cartella server.xls]NomeFoglio'!NomeCella

(attenzione a dove vanno esattamente gli apici)

In ogni caso, quando aprite la cartella CLIENT la prima volta, vi verrà mostrata la finestra di dialogo riprodotta in figura 11.

A questa richiesta va data risposta facendo clic sul pulsante Aggiorna. Immediatamente dopo vi verrà proposta invece quest'altra finestra (figura 12).

Rispondete con attiva Macro, altrimenti le macro della cartella CLIENT non si attiverebbero mai e l'applicazione non potrebbe funzionare.

Infine controllate anche le impostazioni di protezione facendo clic sul Menù 'Strumenti', sottomenù 'Macro', voce 'Protezione' ed impostate un livello di sicurezza almeno Medio o inferiore (figura 13).

Restano ancora da effettuare alcune operazioni, ed abbiamo terminato!

Per prima cosa prelevate il file contenente il prototipo o struttura della cartella CLIENT  (StrutturaCartellaCLIENTTombolaExcel.zip) vedi riquadro in fondo alla pagina.

Si tratta di un file zip contenente una cartella Excel con la struttura e la formattazione dei 3 fogli, Schede, Numeri usciti e Impostazioni (per il CLIENT), diversa dalla scheda Impostazioni del Server!

In questo file zip è presente anche UserForm1C che è lo UserForm1 da importare nel vostro progetto cartella CLIENT (attenzione: il codice di UserForm1 per il CLIENT è diverso da quelle del SERVER!)

Importate la cartella nel vostro progetto CLIENT, dopodichè la prima cosa da fare è modificare i riferimenti remoti in modo che puntino al percorso di rete della vostra cartella SERVER.

Successivamente copiate e incollate il codice per il modulo CLIENT (codice-macro-tombola-con-excel-4.txt) su un vostro modulo pubblico sempre per l'applicazione CLIENT (vedi riquadro a fondo pagina).

Infine seguite queste istruzioni qui di seguito per impostare il codice da inserire nella routine evento WorkSheet_Calculate() del foglio 'Schede' della vostra cartella CLIENT:

La figura 14 vi mostra dove inserire il codice:

E le istruzioni qui di seguito per impostare il codice da inserire nella routine evento Workbook_Open() e di Workbook_BeforeClose di 'ThisWorkbook' della vostra cartella CLIENT

La figura 15 vi mostra dove inserire il codice:

Non ci resta che augurarvi Buona TOMBOLA!




Avvertenza !

Il file dell'esempio codice-macro-tombola-con-excel.zip contenente il codice VBA completo relativo a questo tutorial + i 95 files wav + oggetti da importare, è disponibile nell'area 'Tutorial Download' riservata agli iscritti alle nostre newsletters.

Si tratta di un file zip (compresso) il quale contiene a sua volta i 4 files di testo ai quali si è fatto riferimento in questo tutorial e più precisamente:

codice-macro-tombola-con-excel-1.txt : CODICE COMPLETO DEL PRIMO MODULO
codice-macro-tombola-con-excel-2.txt : CODICE COMPLETO APPLICAZIONE SERVER
codice-macro-tombola-con-excel-3.txt : CODICE MACRO 12 + API PER REGISTRO WINDOWS
codice-macro-tombola-con-excel-4.txt : CODICE PER IL MODULO CLIENT

+ altri 3 file zip:

SuoniTombolaExcel.zip                        :95 files .wav contenenti i suoni dei 90 numeri e delle vincite.
StrutturaCartellaCLIENTTombolaExcel.zip: Tombola con Excel CLIENT_STRUTTURA.xls e UserForm1C.frm
OggettiDaImportareTombolaExcel.zip      : cTimer.cls, Modulo3.bas , UserForm1.frm e UserForm2.frm

Vi consigliamo di utilizzare l'utilità 'Blocco note' di Windows e di assicurarvi che l'opzione 'A capo automatico' (menù Strumenti) siadisattivata, prima di incollare il codice nei vostri moduli.
Iscriviti ora alla newsletter 'Comprendere il PC',  è gratis! Puoi utilizzare il riquadro qui a lato sulla sinistra della pagina in alto oppure seguire direttamente questo collegamento:

http://www.mc2elearning.com/html/comprendere_il_pc.html

(il link per il download è sulla mail di conferma iscrizione, dopo la convalida dell'indirizzo e-mail con il quale vi siete iscritti alla newsletter)





I Tutorial di Microsoft Excel


Home page MC2 E-Learning



Dr.Maurizio Cucchiara

Amministratore unico
MC2 E-Learning S.a r.l.
Formazione per il Web
autore del corso:
"VBA Corso Base"
disponibile on line su questo sito
http://www.mc2.it/html/vba.html




Guarda il video-tutorial
sul nostro canale Youtube:


Tombola con Excel 2010


Condividi sui social network:

Social buttons



Iscriviti al nostro
nuovissimo
canale Youtube!


Iscrivi al nostro canale Youtube

Iscrivimi ora





Potrai restare aggiornato
sui nostri più recenti
video-tutorial su:
Microsoft Access ed Excel
e molto altro...


Cerca sul web con Google: