Inserimento numeri random
-
- Messaggi: 132
- Iscritto il: giovedì 7 marzo 2019, 12:11
Inserimento numeri random
salve, nel foglio "PROVA" del doc in allegato vorrei inserire nelle 9 caselle a sfondo rosso i numeri da 1 a 9 in ordine CASUALE.
esiste una macro per fare ciò?
grazie
esiste una macro per fare ciò?
grazie
- Allegati
-
- torneo a 9.ods
- (26.35 KiB) Scaricato 140 volte
Ultima modifica di Raoul Duke il lunedì 9 dicembre 2019, 13:28, modificato 2 volte in totale.
OpenOffice 4.1.5 con MacOS 10.13.6
Re: inserimento numeri random
I valori casuali devono essere univoci o possono ripetersi, perché potresti usare la seguente formula
Se fai una ricerca sul forum troverai diverse discussioni in merito tipo questa viewtopic.php?f=26&t=5734&p=28659&hilit ... ali#p28653
Credo debbano essere univoci, l'ho adattata al tuo esempio
Codice: Seleziona tutto
CASUALE.TRA(1;9)
Credo debbano essere univoci, l'ho adattata al tuo esempio
- Allegati
-
- torneo a 9.ods
- (22.53 KiB) Scaricato 126 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
-
- Messaggi: 132
- Iscritto il: giovedì 7 marzo 2019, 12:11
-
- Messaggi: 132
- Iscritto il: giovedì 7 marzo 2019, 12:11
Re: [Risolto] inserimento numeri random
ma la formula CASUALE.TRA(1;9) come la devo inserire nella macro?
N=CASUALE.TRA(1;9) non funziona ovviamente... (la sto inserendo in un ciclo for dove ogni volta in quella cella mi deve rimettere un numero casuale)
N=CASUALE.TRA(1;9) non funziona ovviamente... (la sto inserendo in un ciclo for dove ogni volta in quella cella mi deve rimettere un numero casuale)
OpenOffice 4.1.5 con MacOS 10.13.6
Re: inserimento numeri random
Hai sbagliato discussione dovevi continuare nell'altra, comunque non capisco perché la devi inserire nella macro la formula, puoi usarla direttamente nel foglio e nelle celle dove vuoi che vengano restituiti i dati.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
-
- Messaggi: 132
- Iscritto il: giovedì 7 marzo 2019, 12:11
Re: inserimento numeri random
perché se la metto nel foglio mi inserisce un numero random e rimane fisso così per sempre...
mentre a me serve che ad ogni ciclo questo numero random cambi
mentre a me serve che ad ogni ciclo questo numero random cambi
OpenOffice 4.1.5 con MacOS 10.13.6
Re: inserimento numeri random
Codice: Seleziona tutto
Sub Rand (Foglio,N,Riga)
svc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
Dim param(1) as variant
param(0) = 1
param(1) = N
For i = 1 To N
Foglio.getCellByPosition(i, Riga).Value = = svc.CallFunction("com.sun.star.sheet.addin.Analysis.getRANDBETWEEN",param())
Next i
End Sub
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: inserimento numeri random
Ciao Gaetano, perché usi FunctionAccess invece di rnd() ?
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Re: inserimento numeri random
Ciao patel non ho usato rnd() in quanto ho modificato la macro già presente nel post e poi perchè con la FunctionAccess viene replicata la funzione CASUALE.TRA presente tra le formule di Calc invece con Rnd() che genera numeri casuali da 0 a 1 avrei dovuto fare qualcosa del genere (effettivamente più ridotta ) comunque entrambe raggiungono lo stesso scopo.
Rileggendo la macro ho notato un errore un doppio "=" ecco la macro corretta
Versione con rnd()
Codice: Seleziona tutto
Int((N * Rnd) + 1)
Rileggendo la macro ho notato un errore un doppio "=" ecco la macro corretta
Codice: Seleziona tutto
Sub Rand (Foglio,N,Riga)
svc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
Dim param(1) as variant
param(0) = 1
param(1) = N
For i = 1 To N
Foglio.getCellByPosition(i, Riga).Value = svc.CallFunction("com.sun.star.sheet.addin.Analysis.getRANDBETWEEN",param())
Next i
End Sub
Codice: Seleziona tutto
Sub Rand (Foglio,N,Riga)
For i = 1 To N
Foglio.getCellByPosition(i, Riga).Value = Int((N * Rnd) + 1)
Next i
End Sub
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10