COME CREARE UNA MACRO SU EXCEL
Indovina il numero pensato
Ricordate il gioco pensa a un numero, moltiplicalo per 2, aggiungi Y (il numero chiave) dividi tutto per 2, sottrai il numero che hai pensato
Il risultato è dato dal numero che abbiamo fatto aggiungere Y diviso 2.
Per semplificare il calcolo il nostro numero lo scegliamo piccolo e pari in modo da essere divisibile per 2
Da qui ricaviamo l’equazione dove la x è il numero del pensante:
[ ( 2x + y ) * 1/2 ] – x =
Scritta meglio con soluzione

Il gioco l’ho realizzato con excel, quando apri il file appare l’avviso di sicurezza che riguarda l’attivazione della macro come in figura:

Spiegazione:
- nel foglio ho utilizzato delle celle di appoggio con la funzione random =CASUALE.TRA(1;30) la quale estrae un numero compreso tra 1 e 30;
- ho creato due colonne, nella prima ho inserito un elenco da 1 a 30 e nella colonna adiacente un altro elenco di soli numeri pari compresi tra 1 e 30 ripetendoli 2 volte e disponendoli a caso;
- su un’altra cella di appoggio ho utilizzato la funzione =CERCA.VERT(cella-risultante;cellax:cellay;intervallo-indice-2;FALSO). Quindi viene estratto un numero a random e trovo il corrispondente che sarebbe il numero pari da sommare.
Eseguendo la macro vengono aggiornati i valori in automatico e ad ogni avvio il gioco è sempre diverso.
Ecco il codice inserito in un modulo nel compilatore VB, Alt+F11 per aprire l’editor VB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
'Inizio macro Seleziona il foglio Sheets("Pensa Un Numero").Select 'Aggiornamento Random Range("C16").Select 'Seleziona la cella e inserisce la formula random in modo da aggiornare sempre il foglio ActiveCell.FormulaR1C1 = "=RANDBETWEEN(1,30)" Range("B3").Select 'Seleziona la cella B3 'Inizio Dim A As Integer Y = Cells(12, 3).Value 'Valore da aggiungere cella C12 Z = Cells(14, 3).Value 'Risultato da visualizzare cella C14 MsgBox "Pensa un numero...", vbInformation MsgBox "Moltiplicalo x 2", vbInformation MsgBox "Aggiungi = " + Str(Y), vbInformation MsgBox "Dividi x 2", vbInformation MsgBox "Sottrai il numero che hai pensato", vbInformation MsgBox "Il risultato è = " + Str(Z), vbInformation End Sub |