Excel 1 fichier de réf et 1 autre que je ctrl

Fermé
nadine258 Messages postés 8 Date d'inscription dimanche 2 septembre 2012 Statut Membre Dernière intervention 23 septembre 2012 - 16 sept. 2012 à 17:38
nadine258 Messages postés 8 Date d'inscription dimanche 2 septembre 2012 Statut Membre Dernière intervention 23 septembre 2012 - 16 sept. 2012 à 17:39
Bonjour,

Je lis un fichier "contenu existant" A et lis le fichier a traiter "contenu a traiter" B.
mes clés de comparaison pour les lignes sont en colonnes B.
Si A = B je compare chacune des colonnes en raison de 22. Si diff je mets la colonne du fichier B en rouge. Si tout est Ok le mets la première colonne de la ligne traitée en vert, si erreur je la mets en rouge.
Si A > B je mets la première colonne du fichier A en orange.
si A < B je mets la première colonne du fichier B en orange.
Le traitement des cellules est OK.

mon problème est de faire ma syncro pour les cas < ou > avec mes boucles for (si décalage tout la colonne B passe au rouge.

Je peux vous joindre le code

Merci de m'aider.
A voir également:

1 réponse

nadine258 Messages postés 8 Date d'inscription dimanche 2 septembre 2012 Statut Membre Dernière intervention 23 septembre 2012
16 sept. 2012 à 17:39
Je vous mets le code

Public Sub Compar_Fichier_Entrant()
Dim iLRA%, iLRN%, i%, j%, k%
Dim Y As Boolean, Ys As Boolean
Dim WsA As Worksheet, WsN As Worksheet
'Détermination du nombre de ligne de Classeur "Ancien" et "Nouveau"
Set WsA = Worksheets(("contenu a traiter"))
Set WsN = Worksheets("contenu existant")
'Détermination des absents
For i = 1 To 250
'Détermination des absents
For j = 1 To 250
'Si trouvé alors on contrôle la ligne entière
If WsA.Cells(i, 2) = WsN.Cells(j, 2) Then
Y = True
'et on vérifie la ligne si c'est une égalité stricte
For k = 1 To 15
'si différence on pose un drapeau
If WsA.Cells(i, k) <> WsN.Cells(i, k) Then
Ys = True
'et on colore en orange
WsA.Cells(i, k).Interior.ColorIndex = 45
End If
Next k
'sinon 1ere cellule en vert
If Not Ys Then WsA.Cells(i, 1).Interior.ColorIndex = 4
Ys = False
Exit For
End If
Next j
Next i
Set WsA = Nothing
Set WsN = Nothing
End Sub
0