Hai necessità di confrontare due fogli di Microsoft Excel e visualizzare evidenziate le differenze cella per cella?
Questo metodo ti permette di aggiungere in Microsoft Excel una macro che ti consente di confrontare due fogli cella per cella e restituirti nel secondo foglio sia il numero di differenze trovate sia evidenziarti le celle in cui i valori sono differenti rispetto al primo. Vediamo come:
Dovendo lavorare in ambiente VBA apriamo la relativa finestra.
In Excel XP o 2003
Menù Strumenti – Macro – Visual Basic Editor
In Excel 2007
Bottone di Office – Pulsante Opzioni di Excel – Impostazioni generali – Opzione Mostra scheda Sviluppo sulla barra multifunzione
A questo punto ritornando nella finestra di Excel verrà visualizzata anche la Scheda Sviluppo nella quale troviamo il pulsante Visual Basic
In Excel 2010/2013
Scheda File – Opzioni – Personalizzazione barra multifunzione – Selezionare Sviluppo nella sezione Schede principali
A questo punto ritornando nella finestra di Excel verrà visualizzata anche la Scheda Sviluppo nella quale troviamo il pulsante Visual Basic
Nella finestra Visual Basic inserire un nuovo modulo (menù Inserisci – Modulo) quindi copiare il codice riportato qui sotto:
Sub RunCompare()
Call compareSheets(InputBox("Type name of first sheet"), InputBox("Type name of second sheet"))
End Sub
Sub compareSheets(shtSheet1 As String, shtSheet2 As String)
Dim myCell As Range
Dim mydiffs As Integer
'For each cell in sheet2 that is not the same in Sheet1, color it yellow
For Each myCell In ActiveWorkbook.Worksheets(shtSheet2).UsedRange
If Not myCell.Value = ActiveWorkbook.Worksheets(shtSheet1).Cells(myCell.Row, myCell.Column).Value Then
myCell.Interior.Color = vbYellow
mydiffs = mydiffs + 1
End If
Next
'Display a message box to demonstrate the differences
MsgBox mydiffs & " differences found", vbInformation
ActiveWorkbook.Sheets(shtSheet2).Select
End Sub
Chiudere la finestra di Visual Basic.
Nella scheda Visualizza o nella Scheda Sviluppo cliccare sul pulsante Macro e lanciare la Macro RunCompare; inserendo quindi i nomi dei due fogli, quando richiesto, verrà visualizzato il numero di celle che nel secondo foglio sono differenti rispetto al primo e contemporaneamente le stesse verranno evidenziate in giallo.
Infine se tu stai utilizzando Excel 2013 invece di seguire questo metodo potresti utilizzare la procedura che ho descritto qui.
Buon lavoro!
Informatics, ski racer, loves travels, Finland, Norway, mountains, squash, photography, Drones and RC Helicopter
Molto interessante.
Grazie.
Andrea, scusa se posto qui ma non ho capito dove avrei potuto porti una domanda.
Posso assegnare ad una cella Excel (diciamo la C3), un valore a seconda del risultato che ottengo con un “SE” inserito nella cella C2 ?
Ti ringrazio e mi scuso di nuovo
Gabriele
Buonasera,
per esigenze lavorative ti chiedo come poter confrontare il foglio1(A1;AZ37739) e foglio2 (A1;H37739).Avrei bisogno di una specie di cerca.vert che per ogni colonna con stessa intestazione possa confrontare i dati della colonna con stessa intestazione nell’altro foglio ed evidenziare in rosso le differenze nel Foglio1.
Grazie mille
Simona
Molto utile, grazie!
Excel 2010, tutto a posto finchè non clicco la Macro Runcompare. Mi restituisce un errore di runtime 13 “Tipo non corrispondente”.
il debug mostra l’errore in questa riga:
If Not myCell.Value = ActiveWorkbook.Worksheets(shtSheet1).Cells(myCell.Row, myCell.Column).Value Then
Chissà perchè ma nessuna delle macro che trovo online funziona. Mai una…
Buongiorno, ma nel “compare” volendo ignorare la differenza tra caratteri maiuscoli e minuscoli?
io ho provato con più files e mi dà sempre “indice non compreso nell’intervallo”