J'ai 2 feuilles séparées, appelons-les feuille A, feuille B. J'ai des données dans la feuille B qui est également dans la feuille A. Je veux trouver les lignes qui sont égales et les retirer de la feuille B.Excel/VBA Supprimer les lignes dupliquées en croisant 2 feuilles différentes puis en supprimant 1 ligne
Je ne peux pas combiner les 2 feuilles et utiliser les filtres parce que je fais du SQL dynamique pour interroger différentes données.
Chaque feuille a une colonne clé unique
Je suis ok avec des suggestions VBA et formules Excel. Aussi longtemps que je ne combine pas les feuilles.
Merci beaucoup les gars! Désolé, apparemment j'ai fait une erreur. Il y a une boucle infinie ici quelque part. C'est la réponse de Ben btw. Je viens de republier une version compilable.
Sub CleanDupes()
Dim wsA As Worksheet
Dim wsB As Worksheet
Dim keyColA As String
Dim keyColB As String
Dim rngA As Range
Dim rngB As Range
Dim intRowCounterA As Integer
Dim intRowCounterB As Integer
keyColA = "A"
keyColB = "A"
intRowCounterA = 1
intRowCounterB = 1
Set wsA = Worksheets("Sheet2")
Set wsB = Worksheets("Sheet1")
Do While Not IsEmpty(wsA.Range(keyColA & intRowCounterA).Value)
Set rngA = wsA.Range(keyColA & intRowCounterA)
intRowCounterB = 1
Do While Not IsEmpty(wsB.Range(keyColB & intRowCounterB).Value)
Set rngB = wsB.Range(keyColB & intRowCounterB)
If rngA.Value = rngB.Value Then
Rows(intRowCounterB).EntireRow.Delete
intRowCounterB = intRowCounterB - 1
End If
intRowCounterB = intRowCounterB + 1
Loop
intRowCounterA = intRowCounterA + 1
Loop
End Sub
Salut Ben, j'ai essayé votre suggestion et cela n'a pas fonctionné. J'ai changé la ligne de ligne de suppression à ---- wsB.Range (Rows (intRowCounterB)). EntireRow.Delete mais cela n'a pas fonctionné ainsi aucune idée quant à ce qui pourrait être le problème? Merci! – EKet
@Ehsan Avez-vous parcouru le code pour voir si cela fonctionne correctement? J'ai écrit tout ce code hier soir sans qu'Excel ne soit à portée de main, alors même si cela semblait correct à l'époque, je n'ai pas eu l'occasion de le déboguer complètement. Notez également que vous devrez peut-être modifier les noms des feuilles de "Feuille A" et "Feuille B" 'dans votre code. –
Ben, merci pour la réponse. En fait, j'ai changé le code pour ce qui est de la dénomination ... pas de problème, mais je n'ai pas lu le code pour vérifier la syntaxe, car je suis très novice avec VBA, donc je vous ai cru sur parole. Je vais prendre cela comme une opportunité d'apprentissage et aller apprendre la syntaxe et revenir à vous. Merci. – EKet