Comparaison de classeur Excel

bonjour

je cherche a comparer 2 classeurs excel l'un contenant les nouvelles references d'un fournisseur, (colonne A

reference), (colonne B designation) mais seule la colonne A est importante, le deuxieme est un classeur comprenant environ

180 onglets avec en colonne A egalement les references a comparer, j'a besoin de surligner les reference ou ligne dans le deuxieme classeur quand elle sont trouvees dans le premier. je n'y connais rien ou pas grand chose en VBA donc je sais pas par ou commencer,

j'avais trouve speadsheet compare qui semblait etre la solution mais j'ai une erreur: incompatibilite de type, j'a pourtant mis

toutes les cellules dans le meme format

merci de votre aide

phil

Bonsoir,

une proposition non testée car tu n'as pas fourni de fichier. Macro à lancer à partir du classeur contenant les nouvelles références, après avoir ouvert l'autre classeur.

Sub aargh()
    Set wb1 = ThisWorkbook 'workbook contenant les nouvelles références
    Set wb2 = Workbooks("b.xlsx") ' classeur contenant les différents onglets  (à adapter)
    Set ws1 = wb1.Sheet1
    Set r = Range("A1:A" & ws1.Cells(Rows.Count, 1).End(xlUp).Row)
    For Each ws In wb2.Worksheets
        dlws = ws.Cells(Rows.Count, 1).End(xlUp).Row
        For i = 1 To dlws
            If Not r.Find(ws.Cells(i, 1), lookat:=xlWhole) Is Empty Then
                ws.Rows(i).Interior.Color = vbYellow
            End If
        Next i
    Next
End Sub

voici les fichiers j'ai supprimer quelques onglet dans "update shop" car le fichier etait trop important

phil

5update-shop.xlsm (488.59 Ko)

Bonsoir,

voici une version adaptée, faire alt-F8 pour lancer la macro aargh

ca fonctionne parfaitement avec le classeur que je t'ai envoye par contre avec le mien celui qui as tous les onglets j'ai une erreur d'execution 1004 "erreur definie par l'application ou par l'objet" y a t'il une modif a faire dans la macro du fait du nombre d'onglets differents?

phil

en principe non, car la macro s'adapte au nombre d'onglets

sur quelle instruction as-tu cette erreur ?

sur la 6eme ligne celle qui commence par dlws

quand au depart j'ai enregistrer update shop.xls en xlsm j'ai eu ce message (voir copie ecran) mais je l'avais eu egalement quand j'ai cree celui que je t'ai envoye... donc je sait pas si ca a une importance

phil

1

bonsoir,

sais-tu sur quel onglet cette erreur se produit ?

non c'est un autre quand j'ai converti le fichier en xlsm au depart au cas ou ca aurait une importance, c'est domage que le fichier est trop gros je te l'aurais envoye complet...

phil

mets le sur cjoint.com et mets le lien ici

Bonsoir,

corrige les erreurs dans les onglets cla20 et cla21

Sub aargh()
    Set wb1 = ThisWorkbook    'workbook contenant les nouvelles références
    Set wb2 = Workbooks("update-shop.xlsm")    ' classeur contenant les différents onglets  (à adapter)
    Set ws1 = wb1.Sheets("M015720 frontrunner weight list")
    Set r = ws1.Range("A1:A" & ws1.Cells(Rows.Count, 1).End(xlUp).Row)
    For Each ws In wb2.Worksheets
        c = c + 1
        Application.StatusBar = Format(c / wb2.Worksheets.Count, "0.##%")
        dlws = ws.Cells(Rows.Count, 1).End(xlUp).Row
        For i = 1 To dlws
            On Error GoTo terreur
            If Not r.Find(ws.Cells(i, 1)) Is Nothing Then
                ws.Rows(i).Interior.Color = vbYellow
            End If
        Next i
ici:
        On Error GoTo 0
    Next
    Exit Sub
terreur:
    MsgBox "erreur dans l'onglet " & ws.Name & " cellule " & ws.Cells(i, 1).Address
    Resume ici
End Sub

effectivement il y avait des cellules a corriger et pas que cla20 et 21 apres correction tout fonctionne a merveille

je te remercie beaucoup pour ton aide que m'a ete tres precieuse

a bientot peu etre!

phil

Rechercher des sujets similaires à "comparaison classeur"