Comparer deux fichiers excel
beber
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je dois comparer deux fichiers excel. Ils ont le même nombre de ligne et de colonne. Je dois comparer ligne par ligne et c’est ça mon problème. Dans la 1ère colonne de mon 1er fichier j’ai des codes barres différents. Je les retrouve dans la 1ère colonne de mon 2ème fichier mais pas dans le même ordre. Et je dois comparer chaque ligne entre elles. Par exemple, le 1er code barre de mon 1er fichier est 12223 en (ligne 1 ; col 1), je dois comparer cette ligne avec la ligne dans le 2ème fichier qui correspond au même code barre 12223 et qui est (lign 25 ; col 1). J’espère que quelqu’un pourra m’aider et que je suis claire dans mes explications ! Sinon dites-le moi j’essayerai de m’expliquer mieux !
merci d'avance
Je dois comparer deux fichiers excel. Ils ont le même nombre de ligne et de colonne. Je dois comparer ligne par ligne et c’est ça mon problème. Dans la 1ère colonne de mon 1er fichier j’ai des codes barres différents. Je les retrouve dans la 1ère colonne de mon 2ème fichier mais pas dans le même ordre. Et je dois comparer chaque ligne entre elles. Par exemple, le 1er code barre de mon 1er fichier est 12223 en (ligne 1 ; col 1), je dois comparer cette ligne avec la ligne dans le 2ème fichier qui correspond au même code barre 12223 et qui est (lign 25 ; col 1). J’espère que quelqu’un pourra m’aider et que je suis claire dans mes explications ! Sinon dites-le moi j’essayerai de m’expliquer mieux !
merci d'avance
A voir également:
- Comparer deux fichiers excel
- Nombre de jours entre deux dates excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Fusionner deux fichiers excel - Guide
- Fusionner deux cellules excel - Guide
2 réponses
Bonjour,
Peut il y avoir plusieurs le m^me code dans le fichier 2 ?
par exemple 12223 ligne 25 et ligne 34...
quelle indication veux tu avec une comparaison (positive ou négative) et où doit tu la mettre ?
VBA est il imposé?
Peut il y avoir plusieurs le m^me code dans le fichier 2 ?
par exemple 12223 ligne 25 et ligne 34...
quelle indication veux tu avec une comparaison (positive ou négative) et où doit tu la mettre ?
VBA est il imposé?
beber
Non il n'y a qu'une seule fois le même code dans le fichier 2. Dès qu'il y a une différence, la celulle où se trouve l'erreur est mise en couleur pour bien la voir! et oui visual est imposé! j'ai commencé à faire quelque chose je le posterai demain
Bonsoir,
alors voici une suggestion, maintenant que je l'ai codé...
Postulat, la première colonne sert de clé unique
à adapter dans le code, les noms de fichiers :
Set BookXL1 = Workbooks("Source.xls")
Set BookXL2 = Workbooks("Compare.xls")
Testé sous XLXP
Lupin
alors voici une suggestion, maintenant que je l'ai codé...
Postulat, la première colonne sert de clé unique
à adapter dans le code, les noms de fichiers :
Set BookXL1 = Workbooks("Source.xls")
Set BookXL2 = Workbooks("Compare.xls")
Option Explicit
'
Sub CompareClasseurs()
Dim BookXL1 As Workbook, BookXL2 As Workbook
Dim rngOrg As Range, rngCible As Range
Dim lngLimite As Long, lngBoucle As Long
Dim lngLimCol As Long, lngBclCol As Long
Dim lngIndiceRejets As Long
Dim bolReponse As Boolean, varValeur As Variant
' Désactivation de l'affichage
Application.ScreenUpdating = False
' Initialisation de pointeurs sur chaque fichier
Set BookXL1 = Workbooks("Source.xls")
Set BookXL2 = Workbooks("Compare.xls")
' Indicateur de rejets
lngIndiceRejets = 0
' Nombre de lignes non vides, débutant en A1, jusqu'a A65536
lngLimite = BookXL1.Sheets("Feuil1").Range("A1:A65536").End(xlDown).Row
' Boucle FOR de 1 à ... puisque la méthode .Range("AX")
For lngBoucle = 1 To lngLimite
' Initialise un pointeur sur la cellule source
Set rngOrg = BookXL1.Sheets("Feuil1").Range("A" & lngBoucle)
' Lire sa valeur
varValeur = rngOrg.Value
' Trouver la cellule correspondante dans l'autre classeur
bolReponse = TrouveLigne(BookXL2, varValeur, rngCible)
If (bolReponse) Then ' Est identique à If (bolReponse = True) Then
' Initialise compteur de colonnes
lngBclCol = 0
' Tant Que Cellule De_Colonnes_Contigus Est Non-Vide, déplace à droite
' Ici, si la largeur est plutôt fixe, un FOR x = 1 TO y serait mieux
While rngOrg.Offset(0, lngBclCol) <> ""
' Si valeur cible <> valeur source
If rngCible.Offset(0, lngBclCol).Value <> rngOrg.Offset(0, lngBclCol).Value Then
' Modifie couleur de la cible
rngCible.Offset(0, lngBclCol).Interior.ColorIndex = 4
End If
' Incrémente compteur/pointeur de colonnes
lngBclCol = (lngBclCol + 1)
Wend
Else
' Incrémente indicateur de rejets
lngIndiceRejets = (lngIndiceRejets + 1)
End If
Next
BookXL2.Activate
Sheets("Feuil1").Select
Range("A1").Select
BookXL1.Activate
Sheets("Feuil1").Select
Range("A1").Select
Set rngCible = Nothing
Set rngOrg = Nothing
Set BookXL1 = Nothing
Set BookXL2 = Nothing
Application.ScreenUpdating = True
End Sub
'
Function TrouveLigne(ByVal ThisBook As Workbook, _
ByVal LaValeur As Variant, _
ByRef rraLaCible As Range) As Boolean
On Error GoTo Err_Trouveligne
ThisBook.Activate
Sheets("Feuil1").Select
Cells.Find(What:=LaValeur, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
Set rraLaCible = ActiveCell
TrouveLigne = True
Exit_TrouveLigne:
Exit Function
Err_Trouveligne:
TrouveLigne = False
End Function
'
Testé sous XLXP
Lupin