Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Generazione 3 gruppi num casuali modif macro

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Generazione 3 gruppi num casuali modif macro

Postdi papiriof » 12/04/14 09:22

Ho trovato in rete queste macro per la generazione di 3 gruppi di numeri casuali l'ho adattata per un programmino per il lotto dove riesco a cambiare rispettivamente 1) La ruota( da 1 a 10) 2)La posizione del numero nella ruota(quindi da uno a cinque) 3) il numero (da 1 a 90) il tutto per avere ogni volta che si preme un bottone uno scenario diverso da valutare su 5 ruote .
Come si evince facilmente la generazione di questi 3 gruppi si concretizza in modo verticale il 1 gruppo A6:A10 il 2° gruppo da A12:A16 e il 3° A18:A22
A me invece interesserebbe che la generazione si concretizzasse in questo modo:1 gruppo Q6:U6 il 2° gruppo da Q7:U7 e il 3° Q8:U8
ma soprattutto modificare le macro, nel modo suddetto riproposte in modo continuo con uscita al verificarsi di una condizione da me posta sul foglio ecco le macro:
Codice: Seleziona tutto
Option Explicit
' ---------------La chiamata di routine (può essere integrata in un'altra routine)
Private Sub LanciaBottone_Click()
Dim Quantita As Long
Dim Inferiore As Long
Dim Superiore As Long
Dim InizioLista As String
' ----- 1° gruppo
Quantita = 5                                 ' Indicare qui la quantità dei numeri aleatori
Inferiore = 1                                      ' il numero + piccolo
Superiore = 10                                  ' il numero + grande
InizioLista = "A6"                                ' la posizione del primo numero nel foglio
Call NumeriAleatoriSenzaDoppioni(Quantita, Inferiore, Superiore, Range(InizioLista))
' ----- 2° gruppo
Quantita = 5                                'Indicare qui la quantità dei numeri aleatori
Inferiore = 1                                 ' il numero + piccolo
Superiore = 5                                 ' il numero + grande
InizioLista = "A12"                            ' la posizione del primo numero nel foglio
Call NumeriAleatoriSenzaDoppioni(Quantita, Inferiore, Superiore, Range(InizioLista))
' ----- 3° gruppo
Quantita = 5                                 'Indicare qui la quantità dei numeri aleatori
Inferiore = 1                                      ' il numero + piccolo
Superiore = 90                                  ' il numero + grande
InizioLista = "A18"                                ' la posizione del primo numero nel foglio
Call NumeriAleatoriSenzaDoppioni(Quantita, Inferiore, Superiore, Range(InizioLista))
End Sub




'---------------- Genera numeri casuali tra tre termini  e scrive su un intervallo il cui inizio è dato
Sub NumeriAleatoriSenzaDoppioni(Qte As Long, Inf As Long, Sup As Long, Inizio As Range)
Dim Interv As Range
Dim InizProv As Range
Application.ScreenUpdating = False
Columns("A:B").Insert Shift:=xlToRight
Set InizProv = Range("A1")
InizProv.FormulaR1C1 = Inf
InizProv.Offset(1, 0).FormulaR1C1 = Inf + 1
Set Interv = Range(InizProv, InizProv.Offset(Sup - Inf))
Range(InizProv, InizProv.Offset(1, 0)).AutoFill Destination:=Interv, Type:=xlFillDefault
InizProv.Offset(0, 1).FormulaR1C1 = "=RAND()"
InizProv.Offset(0, 1).AutoFill Destination:=Interv.Offset(0, 1), Type:=xlFillDefault
Range(Interv, Interv.Offset(0, 1)).Sort Key1:=InizProv.Offset(0, 1), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
Range(InizProv, InizProv.Offset(Qte - 1, 0)).Copy Range(Inizio, Inizio.Offset(Qte - 1, 0))

Columns("A:B").Delete Shift:=xlToLeft
Application.ScreenUpdating = True
End Sub
Win 7+Office 2007... ma preferisco convertire in Office 2003
papiriof
Utente Senior
 
Post: 152
Iscritto il: 16/02/10 13:23

Sponsor
 

Torna a Applicazioni Office Windows


Topic correlati a "Generazione 3 gruppi num casuali modif macro":


Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti