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
    sabato 10 ottobre 2026
    Bari
    16
    38
    53
    21
    55
    Cagliari
    21
    66
    30
    55
    62
    Firenze
    30
    75
    23
    10
    68
    Genova
    68
    31
    16
    64
    63
    Milano
    20
    05
    11
    17
    64
    Napoli
    30
    74
    82
    78
    77
    Palermo
    17
    15
    50
    80
    44
    Roma
    05
    32
    59
    39
    66
    Torino
    31
    59
    56
    29
    20
    Venezia
    11
    66
    07
    61
    88
    Nazionale
    18
    52
    01
    28
    13
    Estrazione Simbolotto
    34
    33
    05
    22
    14

Ultimi Messaggi

Indietro
Alto