Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

trova ambi con condizioni

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

trova ambi con condizioni

Postdi miko » 11/03/13 12:06

salve,
per realizzare questo progetto ho rivisto alcune macro, sul forum, realizzate in precedenza;
ma mi riesce difficile applicarle al mio caso in quanto queste macro cercano ambi già stabiliti in partenza,
mentre nel mio caso non conosco gli ambi ma solo le condizioni a cui essi devono soddisfare.
Il calcolo che intendo realizzare prevede che nel quadro estrazionale, range ("C4:BE" & UR) , essendo UR
l'ultima riga non nota del foglio, devo cercare per ogni riga, 2 o più ambi che abbiano le seguenti condizioni:
1) la somma dei numeri che compongono gli ambi deve essere uguale;
2) i numeri costituenti gli ambi devono essere in posizione isotopa, cioè stesso posto di estrazione nelle ruote;
3) gli ambi devono trovarsi su ruote distinte, ed in particolare le ruote devono essere consecutive,
ad esempio bari- cagliari, Cagliari-firenze....
oppure diametrali, ad esempio bari-napoli, cagliari-palermo....
esempio numerico:
su bari trovo i numeri
1°....4°..
52....12
sulla ruota consecutiva, Cagliari, oppure diametrale Napoli, trovo:
1°....4°..
40....24
entrambi questi ambi hanno somma 64, i numeri si trovano in 1° e 4° posizione, ed appartengono a ruote consecutive o diametrali.
per quanto mi applichi nel modificare le macro citate non riesco a costruire le linee di codice per rispettare le suddette 3 condizioni.
grazie ciao
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Sponsor
 

Re: trova ambi con condizioni

Postdi miko » 13/03/13 23:17

buona sera,
per risolvere il mio problema ho pensato di seguire questo procedimento:
con un ciclo considero tutti gli ambi che si formano con i 5 numeri di una ruota;
confronto ciascuno di tali ambi con quelli delle ruote successive.
quindi ad esempio ruota di bari, 1° e 2° elemento con tutti gli altri;
poi 1°e 3°,1°e 4° e successivamente 2°e 3°,2°e 4° e così via passando alle altre ruote.
allo scopo ho cercato di modificare questa macro di flash di tempo addietro:
Codice: Seleziona tutto
Sub CercaAmbo()
Worksheets("Archivio").Select
UC = Worksheets("Archivio") _
    .Range("C" & Rows.Count).End(xlUp).Row
Range("C5:BE" & UC).Interior.ColorIndex = xlNone

For CC = 1 To 10
  RRP = CC * 5 + 2
  RRuota = RRP - 4
R = 5
 If RRuota = 2 Then RRuota = 3
 Cells(R, RRuota).Interior.ColorIndex = 3
 Cells(R, RRuota + 1).Interior.ColorIndex = 3
 A = Cells(R, RRuota).Value
 B = Cells(R, RRuota + 1).Value
 Ambo = Val(A & B)
   
       For Col1 = RRuota + 5 To 52
    Cells(R, Col1).Interior.ColorIndex = 4
     aa = Cells(R, Col1).Value * 100
       
          For Col = Col1 + 1 To 12  '<<<<<<<<<<<
        If Col1 = Col Then Col = Col + 1
     Cells(R, Col).Interior.ColorIndex = 4
        bb = Cells(R, Col).Value * 100
     
         AmboE = aa + Cells(R, Col).Value
        AmboD = bb + Cells(R, Col1).Value
       
    If AmboE = Ambo Or AmboD = Ambo Then
     Cells(R, Col).Interior.ColorIndex = 45
     Cells(R, Col1).Interior.ColorIndex = 45
               
     End If
Cells(R, Col).Interior.ColorIndex = xlNone
     Next Col
       Cells(R, Col1).Interior.ColorIndex = xlNone
      Next Col1
     
    'Next R
   Next CC
End Sub

nella quale, per prova, ho fissato il numero di riga,5.
non ho risolto il problema poichè non riesco a stabilire i limiti dei cicli,
in particolare del ciclo For Col evidenziato.
la macro infatti funziona per le prime due ruote ma poi dalla terza fornisce risultati errati.
come dovrei impostare il ciclo?
questo risultato servirebbe in futuro in applicazioni che richiedono il confronto in range.
grazie saluti
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Re: trova ambi con condizioni

Postdi Flash30005 » 14/03/13 13:39

Sicuramente la macro ha funzionato per l'esigenza dell'utente in una determinata situzione.
Per processare un archivio bisogna sapere come sono distribuiti i dati, senza questa informazione (o file)
non posso sapere come intervenire sulla macro.

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: trova ambi con condizioni

Postdi miko » 14/03/13 18:58

buona sera,
allego il file:
http://www.filedropper.com/cercaambo
rispetto alla descrizione iniziale ho solo modificato
la prima linea dei dati che è la 6 invece di 5.
ciao e grazie
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Re: trova ambi con condizioni

Postdi Flash30005 » 14/03/13 23:38

Tu dici che quella macro l'ho fatta io ma sinceramente, visto le cose insensate che ho trovato, penso che, se sono l'autore, dovevo essere ubriaco (anche se non bevo molto) :D

Prova questa
Codice: Seleziona tutto
Sub CercaAmbo()
Worksheets("Archivio").Select
UR = Worksheets("Archivio").Range("C" & Rows.Count).End(xlUp).Row
Range("C5:BE" & UR).Interior.ColorIndex = xlNone
For R = 6 To UR
    For CC = 1 To 10
        RRP = CC * 5 + 2
        RRuota = RRP - 4
        If RRuota = 2 Then RRuota = 3
        P1 = 0
        TR = 0
        For CA = RRuota To RRuota + 3
        A = Format(Cells(R, CA).Value, "00")
        P1 = P1 + 1
        For CB = RRuota + 1 To RRuota + 5 - P1
        B = Format(Cells(R, CB).Value, "00")
        Ambo = Val(A & B)
        If A > B Then Ambo = Val(B & A)
        For TRR = 1 To 2
            ColIn = 5 + RRuota
            P = 0
            TR = 0
            If TRR = 2 Then ColIn = 25 + RRuota
            For Col1 = ColIn To ColIn + 3
                P = P + 1
                aa = Format(Cells(R, Col1).Value, "00")
                For Col = Col1 + 1 To Col1 + 5 - P
                    bb = Format(Cells(R, Col).Value, "00")
                    AmboE = Val(aa & bb)
                    If aa > bb Then AmboE = Val(bb & aa)
                    If AmboE = Ambo Then
                    Colore = 6
                    If TRR = 2 Then Colore = 4
                        Cells(R, Col).Interior.ColorIndex = Colore
                        Cells(R, Col1).Interior.ColorIndex = Colore
                        Cells(R, CA).Interior.ColorIndex = 45
                        Cells(R, CB).Interior.ColorIndex = 45
                    End If
                Next Col
            Next Col1
        Next TRR
        Next CB
        Next CA
    Next CC
Next R
End Sub


Avrai dei colori differenziati in caso di combinazione trovata
Ruota Analizzata = Colore Arancio
Ruota Consecutiva = Colore Giallo
Ruota Diametrale = Colore Verde
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: trova ambi con condizioni

Postdi miko » 15/03/13 23:23

buona sera,
hai ragione:
... la macro ha funzionato per l'esigenza dell'utente in una determinata situzione...

ma come scrivevo in precedenza:
.. ho cercato di modificare questa macro di flash..

per cui la macro originale, la tua, funziona perfettamente, mentre le cose insensate che hai trovato,
sono mie introduzioni-obbrobri.
ho testato la tua macro ed ho notato una anomalia nei due seguenti cicli, che provo a chiarire:
Codice: Seleziona tutto
.....
For CA = RRuota To RRuota + 3
        A = Format(Cells(R, CA).Value, "00")
        P1 = P1 + 1
        For CB = RRuota + 1 To RRuota + 5 - P1
        B = Format(Cells(R, CB).Value, "00")
        Ambo = Val(A & B)
....   

non considerare la seguente linea: (1)
If A > B Then Ambo = Val(B & A)
esaminiamo la prima linea della ruota di bari, 56-57-12-77-62
inizialmente i cicli funzionano bene
CA=3, CB= CA +1
ed i cicli considerano nell'ordine le coppie
56-57
56-12
56-77
56-62
successivamente, al secondo ciclo, CA e CB assumono lo stesso valore CA=CB= 4
per cui i cicli considerano l'ambo 57-57, cioè lo stesso numero;
poi CA resta uguale a 4, mentre CB aumenta e si ha CA=4, CB= CA +1=5
per cui viene considerato l'ambo 12-57;
poi il ciclo torna indietro e considera l'ambo 57-77;
qui il ciclo finisce e passa alla ruota successiva;
di conseguenza non considera nell'ordine, gli ambi, sempre della ruota di bari:
57-12 (vedi 1)
57-62
12-77
12-62
77-62
ho provato anche in questo caso a modificare i cicli ma invano, ho creato altre cose insensate.
ciao e grazie
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Re: trova ambi con condizioni

Postdi Flash30005 » 16/03/13 15:11

Questo succede a rimettere mano a macro modificate
ho corretto il bug (che non alterava il risultato ma era ridondante)
Codice: Seleziona tutto
Sub CercaAmbo()
Worksheets("Archivio").Select
UR = Worksheets("Archivio").Range("C" & Rows.Count).End(xlUp).Row
Range("C5:BE" & UR).Interior.ColorIndex = xlNone
For R = 6 To UR
    For CC = 1 To 10
        RRP = CC * 5 + 2
        RRuota = RRP - 4
        If RRuota = 2 Then RRuota = 3
        P1 = 0
        TR = 0
        For CA = RRuota To RRuota + 3
        A = Format(Cells(R, CA).Value, "00")
        P1 = P1 + 1
        For CB = CA + 1 To CA + 5 - P1
        B = Format(Cells(R, CB).Value, "00")
        Ambo = Val(A & B)
        If A > B Then Ambo = Val(B & A)
        For TRR = 1 To 2
            ColIn = 5 + RRuota
            P = 0
            TR = 0
            If TRR = 2 Then ColIn = 25 + RRuota
            For Col1 = ColIn To ColIn + 3
                P = P + 1
                aa = Format(Cells(R, Col1).Value, "00")
                For Col = Col1 + 1 To Col1 + 5 - P
                    bb = Format(Cells(R, Col).Value, "00")
                    AmboE = Val(aa & bb)
                    If aa > bb Then AmboE = Val(bb & aa)
                    If AmboE = Ambo Then
                    Colore = 6
                    If TRR = 2 Then Colore = 4
                        Cells(R, Col).Interior.ColorIndex = Colore
                        Cells(R, Col1).Interior.ColorIndex = Colore
                        Cells(R, CA).Interior.ColorIndex = 45
                        Cells(R, CB).Interior.ColorIndex = 45
                    End If
                Next Col
            Next Col1
        Next TRR
        Next CB
        Next CA
    Next CC
Next R
End Sub


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: trova ambi con condizioni

Postdi miko » 16/03/13 19:02

buona sera a tutti,
mi hai preceduto, purtroppo non ho avuto il tempo di inserire una risposta in precedenza.
credo di aver trovato il problema dell'anomalia di cui parlavo in precedenza.
mi preme tuttavia sottolineare, riferendomi al tuo inserimento, che:
Questo succede a rimettere mano a macro modificate

cercavo di trovare la soluzione da autodidatta e non pensavo di creare un vostro maggiore impegno.
volevo solo evidenziare la macro che stavo cercando di modificare.
posto la soluzione che ho trovato, forse potrà interessare ad altri utenti;
il problema nella prima macro era dovuto ai valori assunti dalla variabile p1, che nei cicli successivi al primo
diminuiva o rendeva uguale il valore della variabile CB rispetto alla variabile CA.
fissando il valore di p1=1, le linee di codice interessate diventano:
For CB = CA + 1 To RRuota + 5 - p1
equivalente a scrivere:
For CB = CA + 1 To RRuota + 5 - 1
e cioè:
For CB = CA + 1 To RRuota + 4
perchè CB deve essere sempre maggiore di CA di una unità;
la variabile p1 non ha più motivo di esistere.
credo che questa modifica sia identica alla soluzione successiva di flash.
grazie e buona domenica a tutti.
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Re: trova ambi con condizioni

Postdi Flash30005 » 16/03/13 21:47

Complimenti!!!

L'idea era quella! :D

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: trova ambi con condizioni

Postdi miko » 17/03/13 19:23

buona sera e buona domenica,
le tue macro attuali ricercano gli ambi su ruote consecutive e/o diametrali;
se invece, fermo restando il procedimento che hai adottato,
si cercano gli ambi su tutte le ruote senza alcuna distinzione o condizione,
tra le ruote, quindi in generale, come dovrei modificare la macro?
ho capito che devo intervenire sui cicli for di col1 e di col, ma fino ad ora
non sono riuscito a modificare la macro.
ciao grazie
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Re: trova ambi con condizioni

Postdi Flash30005 » 17/03/13 19:49

Sarebbe da rivederla tutta perché così mi sembra di metterci delle toppe (credo che la macro originale scansionasse tutte le ruote)
Codice: Seleziona tutto
Sub CercaAmbo()
Worksheets("Archivio").Select
UR = Worksheets("Archivio").Range("C" & Rows.Count).End(xlUp).Row
Range("C5:BE" & UR).Interior.ColorIndex = xlNone
For R = 6 To UR
    For CC = 1 To 10
        RRP = CC * 5 + 2
        RRuota = RRP - 4
        If RRuota = 2 Then RRuota = 3
        P1 = 0
        TR = 0
        For CA = RRuota To RRuota + 3
        A = Format(Cells(R, CA).Value, "00")
        P1 = P1 + 1
        For CB = CA + 1 To CA + 5 - P1
        B = Format(Cells(R, CB).Value, "00")
        Ambo = Val(A & B)
        If A > B Then Ambo = Val(B & A)
        For ColIn = 5 + RRuota To 50 + RRuota Step 5 '<<< modif
            'ColIn = 5 + RRuota
            P = 0
            TR = 0
            'If TRR = 2 Then ColIn = 25 + RRuota
            For Col1 = ColIn To ColIn + 3
                P = P + 1
                aa = Format(Cells(R, Col1).Value, "00")
                For Col = Col1 + 1 To Col1 + 5 - P
                    bb = Format(Cells(R, Col).Value, "00")
                    AmboE = Val(aa & bb)
                    If aa > bb Then AmboE = Val(bb & aa)
                    If AmboE = Ambo Then
                    Colore = 6
                    If ColIn = 25 + RRuota Then Colore = 4 '<<< modif
                        Cells(R, Col).Interior.ColorIndex = Colore
                        Cells(R, Col1).Interior.ColorIndex = Colore
                        Cells(R, CA).Interior.ColorIndex = 45
                        Cells(R, CB).Interior.ColorIndex = 45
                    End If
                Next Col
            Next Col1
        Next ColIn  '<<< mod
        Next CB
        Next CA
    Next CC
Next R
End Sub


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: trova ambi con condizioni

Postdi miko » 17/03/13 20:01

ciao,
ti rispondo subito dal momento che sono ancora in linea;
le tue macro di questo topic scansionano solo le ruote consecutive e diametrali;
poichè so che preferisci i lavori "puliti", senza toppe, e a me piacerebbe vedere la tua macro ben strutturata,
se puoi, quando hai tempo, rivedere il progetto.
saluti e grazie
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Re: trova ambi con condizioni

Postdi Flash30005 » 17/03/13 22:11

Questa è un po' più compatta
Codice: Seleziona tutto
Sub CercaAmboTutte()
Worksheets("Archivio").Select
UR = Worksheets("Archivio").Range("C" & Rows.Count).End(xlUp).Row
Range("C5:BE" & UR).Interior.ColorIndex = xlNone
For R = 6 To UR
    For CC = 1 To 10
        RRP = CC * 5 + 2
        RRuota = RRP - 4
        For CA = RRuota To RRuota + 3
            A = Format(Cells(R, CA).Value, "00")
            For CB = CA + 1 To RRuota + 4
                B = Format(Cells(R, CB).Value, "00")
                Ambo = Val(A & B)
                If A > B Then Ambo = Val(B & A)
                For ColIn = 5 + RRuota To 50 + RRuota Step 5
                For Col1 = ColIn To ColIn + 3
                    aa = Format(Cells(R, Col1).Value, "00")
                    For Col = Col1 + 1 To ColIn + 4
                        bb = Format(Cells(R, Col).Value, "00")
                        AmboE = Val(aa & bb)
                        If aa > bb Then AmboE = Val(bb & aa)
                        If AmboE = Ambo Then
                        Cells(R, Col).Interior.ColorIndex = 6
                        Cells(R, Col1).Interior.ColorIndex = 6
                        Cells(R, CA).Interior.ColorIndex = 45
                        Cells(R, CB).Interior.ColorIndex = 45
                    End If
                Next Col
            Next Col1
        Next ColIn
        Next CB
        Next CA
    Next CC
Next R
End Sub

Però devi tenere presente che, ora, il primo ambo è arancio (es. su Firenze), il secondo giallo (es. su Genova)
ma se quando scansioni Genova trovi di nuovo l'ambo o uno dei due numeri nelle ruote successive questi numeri si coloreranno di arancio e perderebbero il colore giallo ad indicare la corrispondenza con Firenze (vedi riga 10 il 62-53 FI/GE/NA 32-53)

Per differenziare i numeri/ambi ripetuti puoi aggiungere delle condizioni nella routine (pubblico solo la parte interessata)
Codice: Seleziona tutto
'...
                        If AmboE = Ambo Then
                        If Cells(R, Col).Interior.ColorIndex = xlNone Then
                            Cells(R, Col).Interior.ColorIndex = 6
                        Else
                            Cells(R, Col).Interior.ColorIndex = 4
                        End If
                        If Cells(R, Col1).Interior.ColorIndex = xlNone Then
                            Cells(R, Col1).Interior.ColorIndex = 6
                        Else
                            Cells(R, Col1).Interior.ColorIndex = 4
                        End If
                        If Cells(R, CA).Interior.ColorIndex = xlNone Then
                            Cells(R, CA).Interior.ColorIndex = 45
                        Else
                            Cells(R, CA).Interior.ColorIndex = 41
                        End If
                        If Cells(R, CB).Interior.ColorIndex = xlNone Then
                            Cells(R, CB).Interior.ColorIndex = 45
                        Else
                            Cells(R, CB).Interior.ColorIndex = 41
                        End If
                        End If
'...


ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: trova ambi con condizioni

Postdi miko » 18/03/13 09:18

buongiorno, grazie per la ulteriore variante di macro e le spiegazioni.
ho riscontrato una ulteriore anomalia, non si tratta di errore o falsi risultati,
ma di un lavoro inutile che svolge la macro;
tenuto conto che la struttura delle varie macro in questo topic è identica
devo ritenere che questa anomalia sia comune a tutte;
io ho testato l'anomalia in due di queste macro ed hanno lo stesso comportamento.
ricordo che l'ultima colonna utile è la BE.
il problema coinvolge il ciclo:
For CC = 1 To 10
ed evidentemente nei cicli successivi, in particolare:
For Col1 = ColIn To ColIn + 3
e
For Col = Col1 + 1 To Col1 + 5 - P
dal momento che il valore assunto da CC si ritrova, attraverso le altre variabili, nei cicli successivi.
quando CC=1 tutto funziona perfettamente, il range di ricerca termina in colonna BE
ma quando CC>1 il confronto-ricerca degli ambi supera la colonna BE
e la macro ricerca gli ambi anche nelle colonne successive
BF, BG, BH, ...., ma queste colonne sono vuote.
per cui alla linea: AmboE = Val(aa & bb)
risulterà sempre AmboE = 0
ed alla linea : If AmboE = Ambo Then, ci sarà un confronto inutile.
questo dipende dal fatto che quando CC>1 le variabili Col1 e/o Col
assumono valori maggiori della colonna BE.
bisognerebbe quindi rivedere i limiti dei cicli, cosa che ho provato, ma inutilmente, nella giornata di ieri.
ciò al fine anche di evitare di impiegare tempo per una ricerca inutile.
ciao e grazie ancora
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Re: trova ambi con condizioni

Postdi Flash30005 » 18/03/13 13:36

Non noto questa anomalia
se vuoi puoi aiutarti inserendo dei msgbox come questo
Codice: Seleziona tutto
        RRuota = RRP - 4  '<<<< esistente
        MsgBox Cells(3, RRuota).Value '<<< aggiunto msgbox


puoi fare altri msgbox e ricavare eventuale anomalia
una volta trovato dove c'è il bug correggere e/o pubblicarlo


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: trova ambi con condizioni

Postdi miko » 18/03/13 20:00

salve,
ho inserito il msgbox che evidenzia il cambiamento di ruota;
e sembra tutto corretto, anche se a mio parere non è questo il problema.
continuo infatti a visualizzare l'anomalia che descrivevo in precedenza e che mostro in questa immagine:

Immagine

(ho nascosto alcune colonne per una immagine ridotta)
in questo istante le costanti e le variabili assumono il seguente valore:
CC=9
RRP=47
RRUOTA=43
A = Format(Cells(R, CA).Value, "00") = Format(Cells(6,43).Value, "00")=37
B = Format(Cells(R, CB).Value, "00") = Format(Cells(6, 44).Value, "00")=76
ColIn=68 <<<<<<<<<<<
Col1=68 <<<<<<<<<<<<<<
aa = Format(Cells(R, Col1).Value, "00")= Format(Cells(6, 68).Value, "00")=0
Col = 69 <<<<<<<<<<<<
bb = Format(Cells(R, Col).Value, "00")= Format(Cells(6, 69).Value, "00")=0
quindi la macro cerca gli ambi anche oltre la colonna BE, e trova sempre valori nulli,
fino a quando ColIn, Col1 e Col raggiungono i valori massimi.
fai tu una prova, dura pochi secondi, fai scorrere il foglio in modo che possa visualizzare le ultime tre ruote,
come nell'immagine allegata, e la rimanente parte bianca;
nella macro poni for CC=9 to 10
avviala con f8 e dopo pochi istanti vedrai che si colorano anche le celle vuote oltre la colonna BE,
come dicevo prima.
(ho inserito il colorindex per vedere il comportamento della macro)
secondo quello che ho potuto intuire, all'aumentere della variabile CC devono diminuire in proporzione
le variabili ColIn, Col1, e Col.
sto ripetendo vari tentativi per individuare questa proporzione ma non ricavo ancora nulla.
saluti grazie
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Re: trova ambi con condizioni

Postdi Flash30005 » 18/03/13 21:08

E' qui l'inghippo
sostituisci
Codice: Seleziona tutto
              For ColIn = 5 + RRuota To 50 + RRuota Step 5

con
Codice: Seleziona tutto
              For ColIn = 5 + RRuota To 53  Step 5


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: trova ambi con condizioni

Postdi miko » 20/03/13 13:07

salve,
con la tua ultima modifica, le tue ultime macro, quella del 17/03/13 ore 18:49
e quella del 17/03/13 ore 21:11, hanno risolto perfettamente l'anomalia di cui parlavo in precedenza.
devo avanzare una duplice richiesta per concludere questo topic;

1) la modifica che hai apportato funziona per le due macro citate,
ma non può essere applicata alle prime due macro,
quella del 14/03/13 ore 22:38 e quella del 16/03/13 ore 14:11,
anche in queste macro si presenta l'anomalia che ho evidenziato nell'immagine del 18/03/13;
ricordo, che a differenza delle ultime due che cercano gli ambi su tutte le ruote,
la prime due cercano invece gli ambi su ruote consecutive e diametrali;
facendo prove ho intuito che bisogna modificare la seguente linea:
If TRR = 2 Then ColIn = 25 + RRuota
ma ancora non sono riuscito a trovare la soluzione.

2) sempre considerando le prime due macro volevo separare le macro
in modo da avere una macro che cerca gli ambi su ruote consecutive,
ed una altra macro che cerca gli ambi su ruote diametrali,
in sostanza avere due diverse macro che rispettano le due diverse condizioni, consecutività e diametralità.
Non sono esperto di lotto, ma credo che la ruota nazionale non abbia una corrispondente diametrale.
anche in questo caso ho provato a modificare le macro ma senza alcun successo.
ciao e grazie
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Re: trova ambi con condizioni

Postdi Flash30005 » 20/03/13 16:40

Se vuoi avere due macro separate per ruote consecutive (copia la macro precedente assegnando un nome diverso)
nella prima modifica questa riga da così
Codice: Seleziona tutto
        For TRR = 1 To 2

a così
Codice: Seleziona tutto
        For TRR = 1 To 1

e per le diametrali modifica la stessa riga così
Codice: Seleziona tutto
        For TRR = 2 To 2

Avrai due macro che effettueranno due processi diversi

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: trova ambi con condizioni

Postdi miko » 20/03/13 20:18

buona sera,
dopo le tue ultime modifiche tutto funziona perfettamente.
grazie.
ho bisogno del parere di esperti nel lotto per stabilire se la macro per la ricerca degli ambi su ruote diametrali
è corretta, non dal punto di vista del calcolo vba, cioè del codice, ma per quanto attiene al gioco lotto.
quando si parla di ruote diametrali, da una ricerca, noto che ci si riferisce sempre alle seguenti coppie di ruote
BARI - NAPOLI
CAGLIARI - PALERMO
FIRENZE - ROMA
GENOVA - TORINO
MILANO - VENEZIA
tra le coppie di ruote vi sono sempre altre 4 ruote di distanza;
se bari e napoli sono le corrispondenti diametrali, è lecito considerare la ruota nazionale come diametrale di napoli?
anche tra napoli e nazionale vi è distanza 4;
oppure la ruota nazionale deve essere esclusa dalle ruote diametrali?
secondo la mia logica direi di si, ma non essendo un esperto di lotto, il quesito mi crea dei dubbi.
ciao e grazie
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "trova ambi con condizioni":


Chi c’è in linea

Visitano il forum: Nessuno e 14 ospiti