Bonjour,
A partir de 2 feuilles A et B d'un même classeur sur lesquelles j'ai un champ en commun, je souhaite :
1- pour chaque ligne de la feuille A on parcourt toutes les lignes de la feuille B
2- si une correspondance est trouvée sur le champ commun, alors on supprime la ligne concernée dans la feuille B ainsi que dans la feuille A
3- on recommence la boucle en 1-
J'ai trouvé le code suivant écrit par Ctplm en 2009 sur un autre forum (et à qui j'ai bien sûr posé la question mais pas de réponse), qui correspond quasiment à ce que je cherche, sauf qu'il ne supprime pas la ligne dans la feuille A également :
J'ai essayé de l'adapter pour répondre à mon besoin mais ça ne fonctionne pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Dim NbLigneSheet1, NbLigneSheet2, LigneDbtData1, LigneDbtData2, a, b As Integer Dim F1, F2 As Object 'Procédure principale Sub SuppressionLignes() 'On appelle les procédures qui initialisent les variables Call InitVar Call CalculNbLignes 'On parcourt la première feuille For a = LigneDbtData1 To NbLigneSheet1 'Pour chaque ligne de la première feuille, on parcourt complètement la deuxième feuille For b = LigneDbtData2 To NbLigneSheet2 'On compare les contenus des deux feuilles VarNom = F1.Range("B" & a) If VarNom = F2.Range("D" & b) Then 'En cas de correspondance on supprime la ligne correspondante dans la deuxième feuille F2.Range("A" & b).Select Selection.EntireRow.Delete 'Ne pas oublier de décrémenter b sinon on zappe une ligne b = b - 1 End If Next b Next a End Sub
Y a-t-il quelqu'un pour m'aider ?
Merci par avance![]()
Partager