Bonjour JMD;
J'ai trouvé un code que j'ai réussi a adapter(voir ci dessous) dans mon appli, elle répond au point 1 mais pas au point 2 et 3
ça progresse..............!!! mais c'est pas encore ça??
1- que les données déjà mises dans les labels restent dans ces mêmes labels même si ils apparaissent dans l'extraction dans un ordre différent
2- que seulement les nouvelles données viennent se mettre dans les labels vides
3- que les données absentes dans l'extraction n'apparaissent plus dans mon tableau
Sub Test()
Dim FinTab1%, FinTab2%, FinTab3%, i%, j%
Dim VF As Boolean
FinTab1 = Feuil1.Range("C1000").End(xlUp).Row ' nomme la fin de mon tableau en Feuil 1
FinTab2 = Feuil2.Range("C1000").End(xlUp).Row ' nomme la fin de mon tableau en Feuil 2
FinTab3 = Feuil3.Range("L1000").End(xlUp).Row ' nomme la fin de mon tableau en Feuil 3
For i = 2 To FinTab1
VF = False
If Feuil1.Range("c" & i) = "" Then 'si cellule Li Feuil1 est vide, alors
j = 1
Do While j <= FinTab2 'Tant que j<Fintab2, fais j+1
j = j + 1
If VF = True Then
Exit Do
End If
If Feuil1.Range("C" & i) = Feuil2.Range("C" & j) Then 'si cellule Ci Feuil1 = Cj Feuil2, alors
Feuil1.Range("A" & i, "g" & i).Copy Feuil2.Range("A" & j) 'copie colle
VF = True 'VF égale true
End If
Loop
If VF = False Then
Feuil1.Range("A" & i, "g" & i).Copy Feuil2.Range("A" & FinTab2 + 1)
FinTab2 = FinTab2 + 1
End If
Else
j = 1
Do While j <= FinTab3 'Tant que j<Fintab3, fais j+1
j = j + 1
If VF = True Then
Exit Do
End If
If Feuil1.Range("C" & i) = Feuil3.Range("L" & j) Then 'si cellule Ci Feuil1 = Cj Feuil3, alors
Feuil1.Range("A" & i, "g" & i).Copy Feuil3.Range("j" & j) 'copie colle
VF = True 'VF égale true
End If
Loop
If VF = False Then
Feuil1.Range("A" & i, "g" & i).Copy Feuil3.Range("J" & FinTab3 + 1)
FinTab3 = FinTab3 + 1
End If
End If
Next
For i = 2 To FinTab3
FinTab3 = Feuil3.Range("L1000").End(xlUp).Row
VF = False
j = 1
Do While j <= FinTab2 'Tant que j<Fintab3, fais j+1
j = j + 1
If VF = True Then
Exit Do
End If
If Feuil3.Range("l" & i) = Feuil2.Range("C" & j) Then 'si cellule Ci Feuil1 = Cj Feuil2, alors
Feuil2.Rows(j).EntireRow.Delete Shift:=xlUp 'supprimer la ligne correspondante
VF = True 'VF égale true
End If
Loop
Next
End Sub