Condividi:        

[Excel - Calc] Confrontare due file

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

Re: [Excel - Calc] Confrontare due file

Postdi apprendistaIT » 25/10/09 19:19

E' molto probabile che abbia sbagliato io ad eseguire la macro :D
Ciao
apprendistaIT
Utente Junior
 
Post: 63
Iscritto il: 07/10/09 15:45

Sponsor
 

Re: [Excel - Calc] Confrontare due file

Postdi Flash30005 » 25/10/09 19:57

apprendistaIT ha scritto:E' molto probabile che abbia sbagliato io ad eseguire la macro :D


Meglio così!
Perché se impari presto, poi, sarai costretto a cambiare nome :lol:

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: [Excel - Calc] Confrontare due file

Postdi apprendistaIT » 25/10/09 21:13

:lol: :lol: :lol:
Ciao
apprendistaIT
Utente Junior
 
Post: 63
Iscritto il: 07/10/09 15:45

Re: [Excel - Calc] Confrontare due file

Postdi antonio.caci » 26/10/09 14:50

Ciao.
Mi torna molto utile in questi giorni l'istruzione ConfrontaEColora, solo che dovrei implementarla controllando tutti e due i fogli e non solo la colonna A, nel mio caso le colonne dalla A alla Z.
Il massimo sarebbe poi che si colorassero solo le celle variate e non l'intera riga.
grazie Antonio
antonio.caci
Utente Junior
 
Post: 16
Iscritto il: 26/10/09 14:46

Re: [Excel - Calc] Confrontare due file

Postdi Flash30005 » 26/10/09 15:38

Ciao Antonio e benvenuto

Prova questa macro:
Codice: Seleziona tutto
Sub CopiaF()
    Sheets("Foglio3").Select
    Cells.Select
    Selection.Clear
    Range("D10").Select
    Sheets("Foglio4").Select
    Cells.Select
    Selection.Clear
    Range("A1").Select
    Sheets("Foglio1").Select
    Cells.Select
    Selection.Copy
    Sheets("Foglio3").Select
    Cells.Select
    ActiveSheet.Paste
    Range("A1").Select
    Sheets("Foglio2").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Foglio4").Select
    Range("A1").Select
    ActiveSheet.Paste
    Range("A1").Select
    Sheets("Foglio3").Select
End Sub
Sub ConfrontaEColora()
' Foglio1 Vecchio Catalogo
' Foglio2 Nuovo Catalogo
' Foglio3 Prodotti che non sono più nel nuovo catalogo
' Foglio4 Nuovi prodotti (non erano nel vecchio catalogo)
Call CopiaF
URS = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row   '<<<< alias Foglio3
UCS = Worksheets("Foglio1").Range("IV2").End(xlToLeft).Column
Worksheets("Foglio3").Select
    Worksheets("Foglio3").Range(Cells(2, 1), Cells(URS, UCS)).Interior.ColorIndex = 44
URA = Worksheets("Foglio2").Range("A" & Rows.Count).End(xlUp).Row  '<<< alias Foglio4
UCA = Worksheets("Foglio2").Range("IV2").End(xlToLeft).Column
Worksheets("Foglio4").Select
    Worksheets("Foglio4").Range(Cells(2, 1), Cells(URA, UCA)).Interior.ColorIndex = 6
For RS = 2 To URS
    For RA = URA To 2 Step -1
    For CS = 1 To UCA
        If Worksheets("Foglio1").Cells(RS, CS).Value = Worksheets("Foglio4").Cells(RA, CS).Value Then Worksheets("Foglio4").Cells(RA, CS).Interior.ColorIndex = 0
    Next CS
    Next RA
Next RS
For RA = 2 To URA
    For RS = URS To 2 Step -1
    For CS = 1 To UCA
        If Worksheets("Foglio2").Cells(RA, CS).Value = Worksheets("Foglio3").Cells(RS, CS).Value Then Worksheets("Foglio3").Cells(RA, CS).Interior.ColorIndex = 0
    Next CS
    Next RS
Next RA
End Sub


e fai sapere
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: [Excel - Calc] Confrontare due file

Postdi antonio.caci » 26/10/09 17:04

Ciao.
Sembrava funzionare solo che poi si blocca...sono riuscito a fare il debug e mi segnala come errore questa istruzione
"If Worksheets("Foglio1").Cells(RS, CS).Value = Worksheets("Foglio4").Cells(RA, CS).Value Then Worksheets("Foglio4").Cells(RA, CS).Interior.ColorIndex = 0
Next CS"
antonio.caci
Utente Junior
 
Post: 16
Iscritto il: 26/10/09 14:46

Re: [Excel - Calc] Confrontare due file

Postdi antonio.caci » 26/10/09 17:12

per completezza dirò che utilizzo Office 2007
antonio.caci
Utente Junior
 
Post: 16
Iscritto il: 26/10/09 14:46

Re: [Excel - Calc] Confrontare due file

Postdi Flash30005 » 26/10/09 22:20

Ma tu l'hai creato il foglio4?
nella cartella devono esserci 4 fogli
'Foglio1 Vecchio Catalogo
'Foglio2 Nuovo Catalogo
'Foglio3 Risultato
'Foglio4 Risultato

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: [Excel - Calc] Confrontare due file

Postdi antonio.caci » 26/10/09 23:03

ciao.
Si certo,ci sono i fogli 1 e 2 con i dati da confrontare,poi ci sono i fogli 2 e 3 che sono vuoti e vengono riempiti dalla tua istruzione.
La macro parte e copia i file nei fogli 3 e 4,poi colora tutto di giallo nel foglio 4 e poi decolora tutto lasciando gialle solo le celle variate, solo che si blocca ed excel va in crash.Ho notatao fin quando la macro colora il foglio 4 di giallo va tutto bene,poi quando comincia a decolorarsi e lasciare le celle bianche,tranne quelle variate,diventa molto lenta l'elaborazione,finchè si blocca.Devo terminare forzatamente excel per uscire dall'impasse.
antonio.caci
Utente Junior
 
Post: 16
Iscritto il: 26/10/09 14:46

Re: [Excel - Calc] Confrontare due file

Postdi apprendistaIT » 26/10/09 23:44

Ciao, se ti crasha excel è possibile che tu abbia qualche problema alla macchina.
Prova a reinstallare excel e se hai ancora lo stesso problema prova la macro su un altro pc, poi vedi se crasha anche li.
Ciao
apprendistaIT
Utente Junior
 
Post: 63
Iscritto il: 07/10/09 15:45

Re: [Excel - Calc] Confrontare due file

Postdi antonio.caci » 27/10/09 09:33

ciao.
quel test purtroppo lo già fatto, ho provato sia su un desktop che su un portatile,uno con win xo e uno con win7,tutti e due con su excel 2007.
Tu su cosa l'hai testato ?posso provare a vedere su excel 2003 però non so se in giornata riesco....
antonio.caci
Utente Junior
 
Post: 16
Iscritto il: 26/10/09 14:46

Re: [Excel - Calc] Confrontare due file

Postdi apprendistaIT » 27/10/09 09:40

Io l'ho provato sul 2003
Ciao
apprendistaIT
Utente Junior
 
Post: 63
Iscritto il: 07/10/09 15:45

Re: [Excel - Calc] Confrontare due file

Postdi antonio.caci » 27/10/09 10:10

Allora.
provato di nuovo con excel 2007.
La macro va alla meraviglia e passa in rassegna il foglio4,a quanto vedo inizia dalla colonna z per poi tornare indietro verso la colonna A e poi vero il basso dalla riga 2 all'ultima riga.
Quando arriva verso la riga 30 più o meno rallenta molto.Adesso per la prima volta lo vista(l'istruzione) andare avanti.Excel si è bloccato nuovamente (forse si satura la memoria ? ho 4 Gb) e cosi dopo ctrl+alt+delete avere terminato l'applicazione(excel)ma però per poi annullare l'operazione di terminazione, ho visto che aveva fatto tutto il suo lavoro e funziona.....il problema è il blocco......vediamo se riesco a testarla su excel 2003, a me però servirebbe su excel 2007....
antonio.caci
Utente Junior
 
Post: 16
Iscritto il: 26/10/09 14:46

Re: [Excel - Calc] Confrontare due file

Postdi antonio.caci » 27/10/09 10:22

ciao.
Anche su Excel 2003 si blocca,direi anzi che si blocca quasi subito quando l'istruzione arriva a decolorare il foglio4 :cry:
antonio.caci
Utente Junior
 
Post: 16
Iscritto il: 26/10/09 14:46

Re: [Excel - Calc] Confrontare due file

Postdi Flash30005 » 27/10/09 10:58

Hai detto di avere 26 colonne da A a Z
ma quante righe elabori?
Con excel 2003 non hai problemi perché a differenza di excel 2007 non comprime gli oggetti e il 2007 fa molta più "fatica" del 2003 nelle elaborazioni.

1) prova a modificare queste due righe
Codice: Seleziona tutto
...
        If Worksheets("Foglio1").Cells(RS, CS).Value = Worksheets("Foglio4").Cells(RA, CS).Value Then Worksheets("Foglio4").Cells(RA, CS).Interior.ColorIndex = 0
...
        If Worksheets("Foglio2").Cells(RA, CS).Value = Worksheets("Foglio3").Cells(RS, CS).Value Then Worksheets("Foglio3").Cells(RA, CS).Interior.ColorIndex = 0

mettendo xlNone al posto di 0, in pratica verrebbero così
Codice: Seleziona tutto
        If Worksheets("Foglio2").Cells(RA, CS).Value = Worksheets("Foglio3").Cells(RS, CS).Value Then Worksheets("Foglio3").Cells(RA, CS).Interior.ColorIndex = xlNone


2) Fai anche questa prova:
seleziona l'intero foglio3 e sul Munu Modifica seleziona Cancella > Tutto
stessa cosa per il foglio4 poi avvia la macro
Se dovesse funzionare metteremo il comando di pulizia all'inizio della macro.

Fai sapere
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: [Excel - Calc] Confrontare due file

Postdi Flash30005 » 27/10/09 11:05

scarica questo file
e provalo così come è
se funziona metti i tuoi dati nel foglio1 e nel foglio2
e riprova il funzionamento

fai sapere
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: [Excel - Calc] Confrontare due file

Postdi antonio.caci » 27/10/09 11:26

ciao.Allora le righe sono al momento 200, ma aumenteranno, anche se non so di quanto.
Col le nuove modifiche la macro si arresta ed appare la finestra di visual basic che dice:
"errore di compilazione:utilizzo non valido di property"

in visual basic vengono evidenziate di rosso le due righe

("Foglio4").Cells(RA, CS).Interior.ColorIndex = xlsNone
e
("Foglio3").Cells(RA, CS).Interior.ColorIndex = xlNone

ed in evidenza l'ultima parola della riga
If Worksheets("Foglio1").Cells(RS, CS).Value = Worksheets("Foglio4").Cells(RA, CS).Value Then Worksheets

vedo ora il tuo file scarico e provo
antonio.caci
Utente Junior
 
Post: 16
Iscritto il: 26/10/09 14:46

Re: [Excel - Calc] Confrontare due file

Postdi antonio.caci » 27/10/09 11:45

ok :)
col tuo file funziona tutto alla grande!
posso dire che probabilmente la macro creata con excel 2003 è compatibile con 2007 ma non viceversa.
Piccola nota negativa che è un pò lenta, ma l'importante che va !
ottimo e complimenti..
antonio.caci
Utente Junior
 
Post: 16
Iscritto il: 26/10/09 14:46

Re: [Excel - Calc] Confrontare due file

Postdi Flash30005 » 27/10/09 12:03

Prova a mettere queste due righe all'inizio della macro
Codice: Seleziona tutto
Sub ConfrontaEColora()   '<<<<<Nome macro esistente
Application.ScreenUpdating = False       '<<<<<< Riga da aggiungere
Application.Calculation = xlManual     '<<<<<< Riga da aggiungere
...
...

e queste due righe prima della fine della macro
Codice: Seleziona tutto
...
...
Application.ScreenUpdating = True      '<<<<<< Riga da aggiungere
Application.Calculation = xlCalculationAutomatic       '<<<<<< Riga da aggiungere
End Sub '<<<<< fine macro

I codici disabilitano l'aggiornamento schermate e il calcolo e riabilitano tutto dopo aver eseguito il processo,
dovresti avere miglioramenti nella velocità di esecuzione

Fai sapere
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: [Excel - Calc] Confrontare due file

Postdi antonio.caci » 27/10/09 13:32

Inserite le righe nuove.Diciamo che non noto un'esecuzione più veloce,cosi chiaramente mi fa vedere il risultato finale.
Ma è ok.Grazie
antonio.caci
Utente Junior
 
Post: 16
Iscritto il: 26/10/09 14:46

PrecedenteProssimo

Torna a Applicazioni Office Windows


Topic correlati a "[Excel - Calc] Confrontare due file":


Chi c’è in linea

Visitano il forum: Nessuno e 143 ospiti