Comparer les lignes de deux fichiers excel

  • Initiateur de la discussion Sébastien
  • Date de début
S

Sébastien

Guest
Bonjour a toutes et à tous,

Je vous expose mon problème :

J'ai deux feuilles excel contenant des données.
Je souhaite comparer chaque ligne du classeur 'ancien' avec chaque ligne du classeur 'nouveaux' avec en colone commune la A.(Feuil1 pour chacun)
->Si la comparaison de la cellule A1 de la ligne 1 du classeur 'ancien' est identique avec une des cellules de la collone A, de la ligne 'n' du classeur 'nouveau' il compare alors les cellules adjacente (B1,C1,D1,ect) du classeur 'ancien' avec les cellules adjacente(B'n',C'n',D'n',ect) à la cellule A'n' de la ligne 'n' du classeur 'nouveau' .Si on trouve une valeur differentes pour une des cellules adjacentes , la comparaison me colories en orange la cellule qui differe dans la feuille 'nouveau' sinon en vert.
->si il ne trouve aucune correspondance alors il raye la ligne non trouve dans la feuille 'ancien'.

J'ai réussi un bidouiller une macro en vba , grace a des ressource trouver sur internet mais comme je suis novice en la matière ........ce n'est pas au point bien sur !
Merci encore pour aide.

Sébastien
 

leopolo

XLDnaute Nouveau
En ce qui me concerne je procède toujours en 'extrayant' de mon développement en cours une synthèse du problème posé.

Je te suggère de préparrer un nouveau classeur spécifique à partir de ton classeur principal avec quelques lignes caractéristiques seulement, ainsi bien sur que les macros concernées par la question.

Cela revient à faire un fichier 'exemple' (ou plusieurs), qui est (sont) zipé(s) et qui respecte bien sur les règles d'envoi en pièce jointe.
 
S

Sébastien

Guest
Merci pour votre aide .

Pour porcinet82 , je viens de t'envoyer un mail avec les deux fichiers simplifier plus la macro en texte dans le mail .

Pourleopolo , j'ai penser a ton idee mais le resultat escompter n'est pas au rendez vous .La taille du zip autorisé pour avoir des données significative n'est pas suffisant.

A+

Seb
 
S

Sébastien

Guest
Pour leopolo ,voici la macro sous format txt.

Merci

Seb [file name=macro_20060617162433.zip size=519]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/macro_20060617162433.zip[/file]
 

Pièces jointes

  • macro_20060617162433.zip
    519 bytes · Affichages: 193

porcinet82

XLDnaute Barbatruc
Salut Damien, Leopolo,

Je te propose une solution sans m'etre inspirer du travail que tu avais commencé, j'ai repris un code dont je m'etais servi il y a quelques jours pour une question similaire. Le problème avec ce code, c'est que dès qu'il y a beacoup de lignes, je pense qu'il devient limité car son excecution prends un peu de temps.

Code:
Sub test()
Dim i As Byte, k As Integer, val As Variant

Application.ScreenUpdating = False
Workbooks('ancien.xls').Activate
For i = 3 To Range('A65536').End(xlUp).Row
    val = Cells(i, 1).Value
    If not Workbooks('Nouveaux.xls').Sheets(1).Cells(i, 1).Value = val Then
        Workbooks('Nouveaux.xls').Sheets(1).Cells(i, 1).Font.ColorIndex = 40
        For k = 2 To Range('IV' & i).End(xlToLeft).Column
            If not Workbooks('Nouveaux.xls').Sheets(1).Cells(i, k).Value = Cells(i, k).Value Then
                Workbooks('Nouveaux.xls').Sheets(1).Cells(i, k).Font.ColorIndex = 40
            End If
        Next k
    End If
Next i
Application.ScreenUpdating = True
End Sub

Tiens moi au courant.

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 571
Messages
2 089 804
Membres
104 276
dernier inscrit
helenevellocet