Condividi:        

Confrontare alcune celle

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

Confrontare alcune celle

Postdi wardrome » 11/02/15 16:36

Salve, vi disturbo nuovamente per un altro "problema"...

In un precedente post mi hanno aiutato a generare una serie di numeri casuali, diversi tra loro, nelle prime 6 celle (A1:F1) con una macro.

Ora, vorrei che il contenuto di queste celle (Foglio1) venga confrontato con il contenuto di altre celle presenti in un altro foglio (Foglio2).

Ad esempio posto un immagine del Foglio2:

Immagine

In quest'immagine si vede una tabella che ha come prima cella quella presente in posizione A1 e l'ultima nella cella F5.
Il confronto che vorrei deve prendere in considerazione tutte le righe (in questo caso dalla numero 1 alla numero 5), riga per riga del Foglio2, partendo dalla numero 1, con l'unica riga del Foglio1 (i numeri generati di cui sopra presenti nelle celle A1:F1).

Se il confronto da come risultato una comunità di numeri uguale a 2, la funzione continua e realizza il medesimo confronto con la riga numero 2.
Se i numeri in comune sono 3, i numeri nel Foglio1 devono essere generati nuovamente e il processo ricomincia fin quando non vengono generati nel Foglio1 numeri che soddisfano le condizioni.

Non so se sono riuscito a spiegarmi, capisco che può essere complicato... :(

Grazie ancora.
wardrome
Newbie
 
Post: 9
Iscritto il: 10/02/15 23:24

Sponsor
 

Re: Confrontare alcune celle

Postdi Flash30005 » 11/02/15 17:13

Ma solo le trova una coppia di numeri nella riga 1 deve continuare a cercare la stessa coppia nelle altre righe?
Esempio se nel folgio1 (numeri generati casualmente) abbiamo :
24 e 75 + altri 4 numeri
trovando questi due numeri nella riga 1 del foglio2
procede al controllo della riga 3, se non trova nulla, cosa si deve fare?

inoltre se abbiamo 24, 75, 82 (+ altri 3 numeri) nel primo foglio e confrontando con la prima riga del foglio2 abbiamo 3 numeri uguali (o più) si devono rigenerare i 6 numeri casuali?

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Confrontare alcune celle

Postdi wardrome » 12/02/15 10:06

Non mi ero espresso esaustivamente, mi ero dimenticato di un "piccolo" particolare.. :P

La funzione ha come obiettivo quello di verificare che nel Foglio1 riga1 non ci siani più di 2 numeri in comune con nessun delle righe (riga per riga) del Foglio 2.
Se non ci sono, dovrebbe esserci un output che ne dia comunicazione (anche un semplice messaggio, o il cambio colore dello sfondo delle celle A1:F1 in verde, ecc ecc).
Diversamente, se nel foglio1 ci sono più di 2 numeri comuni presenti in una (o anche) più righe del Foglio2, gli stessi numeri del Foglio1 devono essere rigenerati.

Questo fino a quando non si troverà una serie di numeri che non abbia più di 2 numeri in comune presenti tra la riga1 del foglio1 e le righe (riga per riga) del Foglio2.

Quindi:
nell'esempio 24 e 75 + 4 numeri, la funzione continua a confrontare le righe successive. Quando confronta l'ultima riga, se non ci sono più di 2 numeri in comune, nel foglio1 ci sarà un "ok" (messaggio, cambio colore celle, ecc ecc)

nell'esempio 24, 75 e 82 + 3 numeri, la funzione confronta i numeri presenti nelle righe del foglio2, se incontra in una riga un sequenza di più di 2 numeri in comune (nella tabella troviamo questa condizione già dalla prima riga del foglio2), accade che nel foglio1 riga 1 vengono generati nuovi numeri.
Generando nuovi numeri, occorre ricominciare il controllo.

Spero di aver spiegato meglio... :)
wardrome
Newbie
 
Post: 9
Iscritto il: 10/02/15 23:24

Re: Confrontare alcune celle

Postdi Flash30005 » 12/02/15 12:12

Prova questa
[code][/Sub NumCas()
Inizio:
Worksheets("Foglio1").Range("A1:F1").Clear
For NC = 1 To 6
Ripeti:
Cas = Int(Rnd(90) * 90) + 1
If Evaluate("=COUNTIF(Foglio1!A1:F1," & Cas & ")") = 1 Then GoTo Ripeti
Worksheets("Foglio1").Cells(1, NC).Value = Cas
Next NC

UR2 = Worksheets("Foglio2").Range("A" & Rows.Count).End(xlUp).Row
For RR2 = 1 To UR2
If Evaluate("=SUM(COUNTIF(Foglio1!A1:F1,Foglio2!A" & RR2 & ":F" & RR2 & "))") > 2 Then GoTo Inizio
Next RR2
Worksheets("Foglio1").Select
Worksheets("Foglio1").Range("A1:F1").Interior.ColorIndex = 43
MsgBox "Elaborazione completata"
End Subcode]

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Confrontare alcune celle

Postdi wardrome » 12/02/15 14:35

Dalle mie parti si potrebbe dire: "mortacci!" :P

Ma sei un drago! ...funziona esattamente come avevo immaginato.
Grazie infinite. :)
wardrome
Newbie
 
Post: 9
Iscritto il: 10/02/15 23:24


Torna a Applicazioni Office Windows


Topic correlati a "Confrontare alcune celle":


Chi c’è in linea

Visitano il forum: papiriof e 48 ospiti