Novità

Help Modifica Macro EXCEL

fillotto

Advanced Member >PLATINUM<
Questa piccola macro che uso in excel mi propone 2 numeri compresi fra 1 e 90 non uguali fra loro (in pratica gli ambi)
e si ferma quando incontra questa riga di codice : "If Cells(1, 25) = Cells(1, 27) Then Exit Do" che posso imostare con "=","< " e ">"
Il problema è che la proposizione dei 2 numeri è fatta in modo casuale e quindi è facile che proponga spesso lo stesso ambo
trascurando per un tempo molto lungo l'ambo che la farebbe uscire .
Allora la domanda: come modificare la macro affinchè passi in rassegna tutti i 4005 ambi possibili e che si fermasse (uscisse)
a secondo dell'if che imposto, e allo stesso tempo mi avvertisse che con la condizione impostata non è stato possibile uscire
avendo passato in rassegna tutti i 4005 ambi??

Public Sub Proponi2()
Application.ScreenUpdating = False
Dim numeri(2) As Long
Dim A As Long
Dim b As Long
Do
For A = 1 To 2 ' riempie la matrice con numeri casuali
rifai:
numeri(A) = Int(Rnd * 90 + 1)
For b = 1 To 2 'controlla se c'è un numero doppio
If A = b Then GoTo salta
If numeri(A) = numeri(b) Then GoTo rifai
salta:
Next b
Next A

For A = 1 To 2 'riempie le celle
Cells(1, A) = numeri(A)
Next A
DoEvents

If Cells(1, 25) = Cells(1, 27) Then Exit Do 'esce se è stato superato > il
'parametro o se è = o se è < minore, secondo l'impostazione

Loop
Application.ScreenUpdating = True
End Sub
 
vedo che nella macro usi i cicli for le variabili e i goto ...
Ebbene è proprio con queste istruzioni che si risolve il problema di sviluppare i 4005 ambi possibili.
Bisongna usare 2 cicli for nidificati , dentro il ciclo piu interno si valuta l'ambo corrente
e nel caso di condizione verificata si valorizza a true una variabile poi si esce dal ciclo magari usando un goto verso una linea fuori dal ciclo esterno.
Se al termine naturale dei due cicli nidificati la variabile bTrovato è false allora si da il messaggio
che la condizione non è stata trovata
 
Ciao Luigi purtroppo la macro l'ho fatta, solo come idea e con l'aiuto esterno almeno 5,6 anni fa, successivamente un 2 anni fa ci hai messo mano anche tu perchè già da allora mi ero accorto della lentezza per via che immagino passava e ripassava sugli stessi ambi e quindi ti chiedo questo altro piacere se vuoi:rolleyes:.Pur comprendendone i passaggi purtroppo all'atto pratico poi non sono capace........per quanto riguarda poi l'applicazione della macro sul foglio excel con l'aiuto delle formule saprei come utilizzarla al meglio secondo i miei desiderata.
 
Ultima modifica:
appunto devi sforzarti di capire quello che ti ho spiegato ..non vorrei sembrarti antipatico ma la mia posizione è insegnare quel poco che so. Mi sono sforzato molto in questo .. Se quello che ti ho spiegato nel post sopra lo considerassi complicato certo non ti farei questo discorso ...si tratta al contrario di una cosa banale ed è lo stesso concetto che tanti usano negli script quando vogliono sviluppare i 4005 ambi .. anzi se cerchi negli script qualche idea la trovi.
Se poi qualcun altro vuole fornire il codice scritto benvenga ...Ciao !
 
Grazie Luigi, capisco e condivido il tuo punto di vista:rolleyes: vuol dire che mi sforzerò ....Se poi qualcun altro vuole fornire il codice scritto benvenga ;)
 
Codice:
 [/B]
[B]Sub[/B][SIZE=2][COLOR=#000000] [/COLOR][/SIZE][SIZE=2][COLOR=#800080][SIZE=2][COLOR=#800080][B]Main[/B]
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#2828ff][SIZE=2][COLOR=#2828ff][B]For[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] x [/COLOR][/SIZE][SIZE=2][COLOR=#ff0000][SIZE=2][COLOR=#ff0000][B]=[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] 1 [/COLOR][/SIZE][SIZE=2][COLOR=#2828ff][SIZE=2][COLOR=#2828ff][B]To[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] 89[/COLOR]
[/SIZE][SIZE=2][COLOR=#2828ff][SIZE=2][COLOR=#2828ff][B]For[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] y [/COLOR][/SIZE][SIZE=2][COLOR=#ff0000][SIZE=2][COLOR=#ff0000][B]=[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] x [/COLOR][/SIZE][SIZE=2][COLOR=#ff0000][SIZE=2][COLOR=#ff0000][B]+[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] 1 [/COLOR][/SIZE][SIZE=2][COLOR=#2828ff][SIZE=2][COLOR=#2828ff][B]To[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] 90[/COLOR]
[/SIZE][SIZE=2][COLOR=#800080][SIZE=2][COLOR=#800080][B]Scrivi[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] x [/COLOR][/SIZE][SIZE=2][COLOR=#ff0000][SIZE=2][COLOR=#ff0000][B]&[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] "[/COLOR][/SIZE][SIZE=2][COLOR=#ff8000][SIZE=2][COLOR=#ff8000].[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000]" [/COLOR][/SIZE][SIZE=2][COLOR=#ff0000][SIZE=2][COLOR=#ff0000][B]&[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] y[/COLOR]
[/SIZE][SIZE=2][COLOR=#2828ff][SIZE=2][COLOR=#2828ff][B]Next[/B]
[B]Next[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] [/COLOR]
[/SIZE][SIZE=2][COLOR=#2828ff][SIZE=2][COLOR=#2828ff][B]End[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] [/COLOR][/SIZE][SIZE=2][COLOR=#2828ff][SIZE=2][COLOR=#2828ff][B]Sub[/B]
[/COLOR][/SIZE][/COLOR][/SIZE]

[B]
 
Codice:
[B]Sub[/B][SIZE=2][COLOR=#800080][SIZE=2][COLOR=#800080][B]Main[/B]
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#2828ff][SIZE=2][COLOR=#2828ff][B]For[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] x [/COLOR][/SIZE][SIZE=2][COLOR=#ff0000][SIZE=2][COLOR=#ff0000][B]=[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] 1 [/COLOR][/SIZE][SIZE=2][COLOR=#2828ff][SIZE=2][COLOR=#2828ff][B]To[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] 89[/COLOR]
[/SIZE][SIZE=2][COLOR=#2828ff][SIZE=2][COLOR=#2828ff][B]For[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] y [/COLOR][/SIZE][SIZE=2][COLOR=#ff0000][SIZE=2][COLOR=#ff0000][B]=[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] x [/COLOR][/SIZE][SIZE=2][COLOR=#ff0000][SIZE=2][COLOR=#ff0000][B]+[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] 1 [/COLOR][/SIZE][SIZE=2][COLOR=#2828ff][SIZE=2][COLOR=#2828ff][B]To[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] 90[/COLOR]
[/SIZE][SIZE=2][COLOR=#800080][SIZE=2][COLOR=#800080][B]Scrivi[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] x [/COLOR][/SIZE][SIZE=2][COLOR=#ff0000][SIZE=2][COLOR=#ff0000][B]&[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] "[/COLOR][/SIZE][SIZE=2][COLOR=#ff8000][SIZE=2][COLOR=#ff8000].[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000]" [/COLOR][/SIZE][SIZE=2][COLOR=#ff0000][SIZE=2][COLOR=#ff0000][B]&[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] y[/COLOR]
[/SIZE][SIZE=2][COLOR=#2828ff][SIZE=2][COLOR=#2828ff][B]Next[/B]
[B]Next[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]
[/SIZE][SIZE=2][COLOR=#2828ff][SIZE=2][COLOR=#2828ff][B]End[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#2828ff][SIZE=2][COLOR=#2828ff][B]Sub[/B]
[/COLOR][/SIZE][/COLOR][/SIZE]
Grazie Claudio visto adesso!!! cerchiamo di incastonare l'aiutino nella macro.........
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 19 agosto 2025
    Bari
    85
    16
    32
    30
    28
    Cagliari
    53
    60
    46
    12
    87
    Firenze
    58
    62
    66
    38
    33
    Genova
    13
    24
    60
    57
    79
    Milano
    22
    13
    38
    24
    07
    Napoli
    02
    12
    51
    16
    86
    Palermo
    88
    06
    26
    02
    76
    Roma
    73
    70
    81
    51
    36
    Torino
    01
    14
    62
    05
    70
    Venezia
    84
    63
    72
    40
    22
    Nazionale
    57
    24
    30
    68
    09
    Estrazione Simbolotto
    Nazionale
    03
    41
    27
    07
    30
Indietro
Alto