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ì 14 ottobre 2025
    Bari
    48
    72
    06
    17
    82
    Cagliari
    28
    15
    25
    20
    34
    Firenze
    07
    17
    49
    62
    04
    Genova
    49
    09
    84
    14
    71
    Milano
    66
    57
    78
    07
    33
    Napoli
    17
    27
    25
    21
    66
    Palermo
    24
    34
    19
    29
    53
    Roma
    82
    53
    47
    25
    55
    Torino
    66
    58
    13
    07
    29
    Venezia
    68
    82
    10
    31
    01
    Nazionale
    19
    76
    15
    45
    26
    Estrazione Simbolotto
    26
    02
    15
    45
    40
Indietro
Alto