Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Pulsante che lancia una funzione

545 views
Skip to first unread message

Armando

unread,
Feb 9, 2011, 2:04:17 PM2/9/11
to
Ciao a tutti,
vorrei un semplice pulsante che, una volta cliccato, generasse nella
cella A1 un numero casuale tra 0 e 36.
Chi puo' aiutarmi?

Grazie
Armando

elby

unread,
Feb 9, 2011, 3:18:07 PM2/9/11
to
Prova a immettere in una cella qualsiasi la formula
=ARROTONDA((CASUALE()*(36-0)+0);0)
e premi F9

se vuoi fare riferimento a celle per i limiti superiori o inferiori
fai riferimento alla formula generale
ARROTONDA((CASUALE()*(b-a)+a);0)
Ciao Elio

Armando

unread,
Feb 9, 2011, 3:23:48 PM2/9/11
to

Ciao Elio,
grazie per la risposta.
Purtroppo non e' esattamente quello che cerco.
La funzione mi funziona bene, avevo risolto con un semplice
=CASUALE.TRA(0;36)

Quello che chiedevo era proprio di associare un pulsante a questa
operazione.
So che la cosa e' equivalente, ma preferiscono un pulsante visibile
sul foglio piuttosto che ricordarsi che il tasto da premere e' F9.
Grazie per il tuo aiuto,

Armando.

elby

unread,
Feb 9, 2011, 8:39:33 PM2/9/11
to

Selezionare l'etichetta del foglio dove c'è la cella con la funzione
CASUALE e fare click destro >> cliccare su visualizza codice>>
Incollare il codice:

Sub Ricalcola()
Me.Calculate
End Sub

Inserisci un Pulsante di comando sul foglio ( modulo ) e associa la
macro Ricalcola

Ciao Elio

Armando

unread,
Feb 9, 2011, 8:52:29 PM2/9/11
to
> > Armando.- Nascondi testo citato
>
> - Mostra testo citato -

mmhhh ancora non mi sono spiegato bene...Non mi serve un pulsante che
ricalcoli il foglio, avrei bisogno di un pulsante che inserisca nella


cella A1 un numero casuale tra 0 e 36.

Ricalcolando il foglio la cella A1 dovrebbe rimanere vuota, a me serve
che si valorizzi solo ed esclusivamente quando clicco sul pulsante.
Cioe' mi spiego meglio. Non voglio inserire all'interno della cella A1
alcuna formula. Voglio che assuma un valore casuale tra 0 e 36 solo
alla pressione del mio amato pulsante.
Grazie

Armando

Mauro Gamberini

unread,
Feb 10, 2011, 3:26:56 AM2/10/11
to

mmhhh ancora non mi sono spiegato bene...Non mi serve un pulsante che
ricalcoli il foglio, avrei bisogno di un pulsante che inserisca nella
cella A1 un numero casuale tra 0 e 36.
Ricalcolando il foglio la cella A1 dovrebbe rimanere vuota, a me serve
che si valorizzi solo ed esclusivamente quando clicco sul pulsante.
Cioe' mi spiego meglio. Non voglio inserire all'interno della cella A1
alcuna formula. Voglio che assuma un valore casuale tra 0 e 36 solo
alla pressione del mio amato pulsante.
Grazie
*****************************************************

Se inseriamo un numero casuale in A1, le celle collegate
ad A1 con una formula aggiorneranno il risultato.
Ma se noi vuotiamo A1, le funzioni che puntano ad A1
non troveranno pi� il valore, ma la cella vuota, quindi
non conserveranno il risultato.

Cosa non sto capendo?

---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
http://www.maurogsc.eu/

Mauro Gamberini

unread,
Feb 10, 2011, 3:52:19 AM2/10/11
to
"Armando" ha scritto nel messaggio
news:b1ca35e2-13fa-4173...@w6g2000vbo.googlegroups.com...

On 10 Feb, 02:39, elby <elibu...@tin.it> wrote:

> Selezionare l'etichetta del foglio dove c'� la cella con la funzione


> CASUALE e fare click destro >> cliccare su visualizza codice>>
> Incollare il codice:
>
> Sub Ricalcola()
> Me.Calculate
> End Sub

mmhhh ancora non mi sono spiegato bene...Non mi serve un pulsante che
ricalcoli il foglio, avrei bisogno di un pulsante che inserisca nella
cella A1 un numero casuale tra 0 e 36.
Ricalcolando il foglio la cella A1 dovrebbe rimanere vuota, a me serve
che si valorizzi solo ed esclusivamente quando clicco sul pulsante.
Cioe' mi spiego meglio. Non voglio inserire all'interno della cella A1
alcuna formula. Voglio che assuma un valore casuale tra 0 e 36 solo
alla pressione del mio amato pulsante.
Grazie

Armando

unread,
Feb 10, 2011, 4:21:01 AM2/10/11
to
On 10 Feb, 09:52, "Mauro Gamberini"
<maurogscRIMUOV...@RIMUOVEREaliceposta.it> wrote:
> "Armando"  ha scritto nel messaggionews:b1ca35e2-13fa-4173...@w6g2000vbo.googlegroups.com...
>
> On 10 Feb, 02:39, elby <elibu...@tin.it> wrote:> Selezionare l'etichetta del foglio dove c'è la cella con la funzione

> > CASUALE e fare click destro >> cliccare su visualizza codice>>
> > Incollare il codice:
>
> > Sub Ricalcola()
> > Me.Calculate
> > End Sub
>
> mmhhh ancora non mi sono spiegato bene...Non mi serve un pulsante che
> ricalcoli il foglio, avrei bisogno di un pulsante che inserisca nella
> cella A1 un numero casuale tra 0 e 36.
> Ricalcolando il foglio la cella A1 dovrebbe rimanere vuota, a me serve
> che si valorizzi solo ed esclusivamente quando clicco sul pulsante.
> Cioe' mi spiego meglio. Non voglio inserire all'interno della cella A1
> alcuna formula. Voglio che assuma un valore casuale tra 0 e 36 solo
> alla pressione del mio amato pulsante.
> Grazie
> *****************************************************
>
> Se inseriamo un numero casuale in A1, le celle collegate
> ad A1 con una formula aggiorneranno il risultato.
> Ma se noi vuotiamo A1, le funzioni che puntano ad A1
> non troveranno più il valore, ma la cella vuota, quindi

> non conserveranno il risultato.
>
> Cosa non sto capendo?
>
> ---------------------------
> Mauro Gamberini
> Microsoft MVP - Excelhttp://www.riolab.org/http://www.maurogsc.eu/

Certo, perfettamente d'accordo.
Ovviamente ci sono celle il cui valore e' collegato alla cella A1, e
che aggiornano il loro risultato in base al valore della stessa.
Pero' se nella cella A1 scrivo =CASUALE.TRA(0;36), il suo valore si
aggiorna anche se inserisco un valore a mano ad esempio nella cella
F5.
Questo non dovrebbe succedere. Cioe', il valore della cella A1 deve
si' mostrare un numero compreso tra 0 e 36, ma solo quando ho
terminato di inserire un'altra serie di valori in altre celle.
E durante questi inserimenti non dovrebbe cambiare. Quindi vorrei
comandarla manualmente, tramite un pulsante che lancia una macro.
Spero di essermi spiegato meglio.
Grazie a tutti per il vostro supporto.

Armando

elby

unread,
Feb 10, 2011, 7:24:28 AM2/10/11
to
Questa dovrebbe fare quello che chiedi nella cella attiva; varia
secondo le tue esigenze
Ciao Elio

Sub test()
Dim dblRandom As Double
ActiveCell.FormulaR1C1 = "=RANDBETWEEN(0,36)"
dblRandom = ActiveCell.Value
End Sub

> Armando- Nascondi testo citato

elby

unread,
Feb 10, 2011, 7:26:58 AM2/10/11
to
Prova con quesra macro da aggganciare al pulsante

Sub test()
Dim dblRandom As Double
ActiveCell.FormulaR1C1 = "=RANDBETWEEN(0,36)"
dblRandom = ActiveCell.Value
ActiveCell.Value = dblRandom

End Sub
Ciao Elio

> Armando- Nascondi testo citato

r

unread,
Feb 10, 2011, 6:50:05 PM2/10/11
to
On 10 Feb, 10:21, Armando <arma...@digrado.com> wrote:

in alternativa alla soluzione di elby (ciao) azzardo una udf
Function rnd_r()
rnd_r = Int(36 * Rnd)
End Function

per aggiornare basta F2+invio (anziche il click sul tuo bottone) nella
cella dove l'avrai richiamata con =rnd_r() ... la udf non è volatile
quindi non si aggiorna in automatico con il ricalcolo.

saluti
r

Armando

unread,
Feb 11, 2011, 4:20:55 AM2/11/11
to
> r- Nascondi testo citato

>
> - Mostra testo citato -

Grazie mille
funzionano bene entrambe le soluzioni proposte

Ciao
Armando

0 new messages