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
A voir également:
- Macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro maker - Télécharger - Divers Utilitaires
- Actiona macro - Télécharger - Divers Utilitaires
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.
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