Macro
Tess88
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
Frenchie83 Messages postés 2254 Statut Membre -
Frenchie83 Messages postés 2254 Statut Membre -
Bonjour à tous,
J'ai besoin d'aide, pour une macro qui permette de chercher les différence entre deux fichiers,
Le 1 er fichier concerne des informations, saisies par mon fournisseur et dans le 2eme des informations saisies par moi. L'idée est de vérifier si il existe des différences entre les deux fichiers.
dans un meme classeur j'aimerais avoir 3 onglets ( feuille 1: mes informations, feuille 2: les info de mon fournisseur, et feuille 3 (Analyse: un bouton de commande qui permette d'affichier le résultat )
En vous remerciant pour votre retour
J'ai besoin d'aide, pour une macro qui permette de chercher les différence entre deux fichiers,
Le 1 er fichier concerne des informations, saisies par mon fournisseur et dans le 2eme des informations saisies par moi. L'idée est de vérifier si il existe des différences entre les deux fichiers.
dans un meme classeur j'aimerais avoir 3 onglets ( feuille 1: mes informations, feuille 2: les info de mon fournisseur, et feuille 3 (Analyse: un bouton de commande qui permette d'affichier le résultat )
En vous remerciant pour votre retour
1 réponse
-
Bonjour,
Je suppose que les feuilles 1 et 2 sont identiques, essaies ce petit bout de programme, le résultat s'affiche en feuille 3 en te donnant en colonne A l'emplacement de la cellule dont le contenu est différent d'une feuille à l'autre, en B tes infos et en C celle du fournisseur. Tu n'as plus qu'à créer un bouton sur la feuille 3 et lui affecter la macro ci-dessous
en espérant que cela te convienne.
Option Compare Text Sub ControleDesDonnees() Application.ScreenUpdating = False Dim DetectionDifference As Boolean 'nettoyage de la feuille de résultats *************************************** Sheets(3).Cells.ClearContents 'Recherche la dernière cellule de la feuille 1 "Mes infos " **************** Sheets(1).Select DerniereLigne1 = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row DerniereColonne1 = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column 'Recherche la dernière cellule de la feuille 2 "Infos fournisseur "*********** Sheets(2).Select DerniereLigne2 = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row DerniereColonne2 = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column 'Prendre comme référence la derniere cellule celle situé la plus basse et la plus à droite parmi les 2 feuilles **** If DerniereLigne1 >= DerniereLigne2 Then DerniereLigne = DerniereLigne1 Else DerniereLigne = DerniereLigne2 End If If DerniereColonne1 >= DerniereColonne2 Then DerniereColonne = DerniereColonne1 Else DerniereColonne = DerniereColonne2 End If DetectionDifference = False ReDim MesInfos(DerniereLigne & DerniereColonne) As String ReDim InfosFournisseur(DerniereLigne & DerniereColonne) As String ReDim Ecart(DerniereLigne & DerniereColonne) As String ReDim Cellule(DerniereLigne & DerniereColonne) As String For i = 1 To DerniereLigne For j = 1 To DerniereColonne If Sheets(1).Cells(i, j) <> Sheets(2).Cells(i, j) Then k = CInt(i & j) MesInfos(k) = Sheets(1).Cells(i, j) InfosFournisseur(k) = Sheets(2).Cells(i, j) Cellule(k) = Sheets(1).Cells(i, j).Address Ecart(k) = i & j DetectionDifference = True End If Next j Next i If DetectionDifference = False Then MsgBox "Pas d'écart constaté" Exit Sub End If Sheets(3).Select Range("A2").Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop For i = 1 To DerniereLigne For j = 1 To DerniereColonne k = CInt(i & j) If Ecart(k) = "" Then GoTo Suivant ActiveCell.Value = Cellule(k) ActiveCell.Offset(0, 1).Value = MesInfos(k) ActiveCell.Offset(0, 2).Value = InfosFournisseur(k) ActiveCell.Offset(1, 0).Select Suivant: Next j Next i 'Affichage des entêtes ************************* Range("A1").Value = "Emplacement cellules" Range("B1").Value = "Mes infos" Range("C1").Value = "infos Fournisseur" Range("A1:C1").MergeCells = False End Sub