Bonjour à tous,
Depuis quelques mois je planche sur un problème dont je n'ai qu'une solution partielle actuellement.
Je cherche à comparer 2 tableaux que je crée à partir de l'extration d'un logiciel (Actuellement environ 250 à 300 lignes, et bientôt entre 500 et 600 lignes à comparer)
Voici les données extraites (en ligne)
Mon souci est que je crée un prévisionnel à partir d'une extraction et la semaine suivante je dois refaire une extraction et voir toutes les différences pour apporter les correction en fonction, s'il y a un changement dans les personnes lieu date ou heure (voir tout à la fois)
J'ai obtenu une solution partielle grâce à au code ci dessous, qui me permet d'afficher les différences entre les tableaux, ligne par ligne:
	
	
	
	
	
		
Les problèmes commencent dès que l'on a une à plusieurs lignes qui s'intercallent dans le tableau ou se soustraient dans le tableau par rapport à la feuilles de référence (ou vice versa), car dans ces cas là, il m'affiche l'intégralité des données qui suivent ce changement, alors que je n'aurais besoin de savoir que seul cette ou ces lignes sont disparues ou sont apparues en plus des autre modification qui se trouvent actuellement noyé au milieu du reste.
J'ai surligné dans les fichiers en pièce jointe les modifications en jaune pour faciliter la lecture et compréhension du fichier.
Si quelqu'un aurait une idée pour m'aider, ce serait génial.
Merci d'avance
	
		
			
		
		
	
				
			Depuis quelques mois je planche sur un problème dont je n'ai qu'une solution partielle actuellement.
Je cherche à comparer 2 tableaux que je crée à partir de l'extration d'un logiciel (Actuellement environ 250 à 300 lignes, et bientôt entre 500 et 600 lignes à comparer)
Voici les données extraites (en ligne)
- Nom
 - Prénom
 - Lieu
 - Date et heure d'arrivée
 - Date et heure de départ
 
Mon souci est que je crée un prévisionnel à partir d'une extraction et la semaine suivante je dois refaire une extraction et voir toutes les différences pour apporter les correction en fonction, s'il y a un changement dans les personnes lieu date ou heure (voir tout à la fois)
J'ai obtenu une solution partielle grâce à au code ci dessous, qui me permet d'afficher les différences entre les tableaux, ligne par ligne:
		Code:
	
	
	Private Sub ComparaisonTableau_Click()
 Dim RG1 As Range, RG2 As Range
 Dim Tblo1, Tblo2, Rg3 As Range
 Dim A As Long, B As Integer, C As Long, D As Integer
 
 Set RG1 = Sheets("Prevision").Range("B4:F999") 'Tabeau 1
 Set RG2 = Sheets("Reel").Range("B2:F997") 'Tableau 2
 Set Rg3 = Sheets("Différence").Range("B4") 'Tableau des résultats
 
 Sheets("Différence").Range("B4:E1000").ClearContents
 
 If RG1.Rows.Count <> RG2.Rows.Count Then
  MsgBox "Le tableau n'a pas le même nombre de lignes"
  Exit Sub
 End If
 If RG1.Columns.Count <> RG2.Columns.Count Then
   MsgBox "Le tableau n'a pas le même nombre de colonnes"
  Exit Sub
 End If
  
 Tblo1 = RG1: Tblo2 = RG2: D = 1
 Application.ScreenUpdating = False
 For A = 1 To UBound(Tblo1, 1)
  For B = 1 To UBound(Tblo1, 2)
    If Tblo1(A, B) <> Tblo2(A, B) Then
      C = C + 1
      Rg3(C, D) = RG1(A, B).Address(0, 0)
      Rg3(C, D).Offset(, 1) = Tblo1(A, B)
      Rg3(C, D).Offset(, 2) = RG2(A, B).Address(0, 0)
      Rg3(C, D).Offset(, 3) = Tblo2(A, B)
    End If
  Next
 Next
 
 Set RG1 = Nothing: Set RG2 = Nothing: Set Rg3 = Nothing
 Erase Tblo1: Erase Tblo2
End Sub
	Les problèmes commencent dès que l'on a une à plusieurs lignes qui s'intercallent dans le tableau ou se soustraient dans le tableau par rapport à la feuilles de référence (ou vice versa), car dans ces cas là, il m'affiche l'intégralité des données qui suivent ce changement, alors que je n'aurais besoin de savoir que seul cette ou ces lignes sont disparues ou sont apparues en plus des autre modification qui se trouvent actuellement noyé au milieu du reste.
J'ai surligné dans les fichiers en pièce jointe les modifications en jaune pour faciliter la lecture et compréhension du fichier.
Si quelqu'un aurait une idée pour m'aider, ce serait génial.
Merci d'avance
Pièces jointes
			
				Dernière édition: