Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

trovare valori in range con array

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

trovare valori in range con array

Postdi miko » 17/08/11 20:16

ciao a tutti,
premetto che non sono un esperto di lotto, sistemistica, e di altri giochi numerici e forse ci saranno imprecisioni nella mia richiesta la cui finalità è solo quello di studio del vba.
sto cercando di realizzare quanto segue:
nel quadro estrazionale range C4:BE come in fig.

Immagine

devo ricercare sempre gli stessi ambi;
ho estrapolato da un vecchio progetto di flash una macro realizzata allo stesso scopo, ricercare ambi, la cui coppia di valori è inserita in una cella;
dovendo ricercare altri ambi si deve inserire la nuova coppia di valori e ripetere la ricerca;
vorrei modificare questa macro per un'analisi dell'archivio in questo modo:
devo ricercare contemporaneamente sempre le stesse coppie di valori, ad esempio (12,57),(77,62),(18,25),(10,56) etc. o evidentemente i loro inversi (57,12),(62,77) etc. quindi devo cercare sempre la coppia (12,57), sempre la coppia (77,62) e cosi per le altre coppie;
ho pensato di inserire tutti i valori in un vettore o array, e la macro modificata risulta essere la seguente:
Codice: Seleziona tutto
Option Base 1 'elimina
Sub CercaAmbo()
Worksheets("Archivio").Select
UC = Worksheets("Archivio").Range("C" & Rows.Count).End(xlUp).Row
    Range("C8:BE" & UC).Interior.ColorIndex = xlNone
    Range("C8:BE" & UC).Font.ColorIndex = 0
     Range("C8").Select
'Ambo = Worksheets("Archivio").Range("B3").Value
Ambo = Array("12", "57", "77", "62", "18", "25", "10", "56", "78", "30", "55", "4")'elimina
For CC = 1 To 11
        RRP = CC * 5 + 2
        RRuota = RRP - 4
For R = 8 To UC
    If RRuota = 2 Then RRuota = 3
    For Col1 = RRuota To RRP
        For N = LBound(Ambo) To UBound(Ambo) 'elimina
       ' aa = Cells(R, Col1).Value * 100
        aa = Ambo(N) * 100  'elimina
        For Col = RRuota To RRP
            If Cells(R, Col1).Value = Cells(R, Col).Value Then GoTo salta
                 AmboE = aa + Cells(R, Col).Value
            'If AmboE = Ambo Then
If AmboE = Ambo(N) & Ambo(N + 1) Then '<<<<<<<<<<<<<< 'elimina
                Cells(R, Col).Select
                With Selection.Interior
                .ColorIndex = 45
                .Pattern = xlSolid
                End With
                Cells(R, Col1).Select
                With Selection.Interior
                .ColorIndex = 45
                .Pattern = xlSolid
                End With
            End If
salta:
        Next Col
    Next N  'elimina
    Next Col1
Next R
 Next CC
Worksheets("Archivio").Range("C7").Select
End Sub

ho errore nel codice solo in corrispondenza della linea evidenziata quando arriva al valore max di N, ma poi non ottengo assolutamente nulla;
(ho inserito la macro perchè eliminando le linee indicate, anche se leggermente diversa dalla originale, è perfettamente funzionante con solo due numeri inseriti nella cella B3, e può essere utile ad altri utenti)

una volta trovate le coppie di valori del primo array, Ambo, devo cercare contemporaneamente altre coppie di valori, e sempre questi, contenuti in un secondo array, Ambo1 = ArrC("15", "47", "68", "51", "20", "29", "8", "36", "88", "40", "85", "6") ma facendo in modo che alla prima coppia del primo array corrisponda la prima coppia del secondo array, alla seconda di Ambo la seconda di Ambo1;
cosi ad esempio se trova la coppia (12,57) del primo array devo trovare la coppia (15,47); alla coppia (77,62) di Ambo deve corrispondere la coppia (68,51) di Ambo1 e così via.
infine aggiornando l'archivio è inutile ripetere la ricerca dalla prima riga ma solo nelle righe che vengono aggiunte ad ogni aggiornamento.
vi è la possibilità, usando la macro originale di flash o quella da me modificata, di inserire le varie coppie di valori in diverse celle e prelevarli eseguendo un ciclo, ma penso che la soluzione con array, se possibile, sia più raffinata e per gli studiosi del vba anche utile visto che in rete ho trovato poco sugli array.
ciao, grazie
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Sponsor
 

Re: trovare valori in range con array

Postdi Flash30005 » 20/08/11 15:04

Sto risolvendo con "metodo tradizionale" :oops:
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-


Torna a Applicazioni Office Windows


Topic correlati a "trovare valori in range con array":


Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti