Bonjour,

Je suis débutant en programmation VBA, et je souhaite traiter un fichier d'environ 2500 lignes.
J'ai 3 colonnes : B,C,D
(700 lignes pour la colonne D et 2500 pour B,C)
Pour chaque valeur de la colonne D, je veux la retrouver dans la colonne C, puis réécrire la ligne B,C,D séparement du tableau initial (dans une autre feuille?)
En conclusion :
Pour chaque D(i), je cherche le C(j) correspondant et je recopie dans un nouveau tableau le B(j),C(j) et D(i)
J'ai commencé ce code mais je ne sais pas comment écrire des lignes automatiquement :

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
Sub Compare()
 
'déclaration des variables
  Dim i As Integer
  Dim j As Integer
  Dim plage1 As Range
  Dim plage2 As Range
  Dim plage3 As Range
 
'Definition plage de cellules en memoire pour vitesse execution
  Set plage1 = Range("B2:B" & Range("B2").End(xlDown).Row)
  Set plage2 = Range("C2:C" & Range("C2").End(xlDown).Row)
  Set plage3 = Range("D2:D" & Range("D2").End(xlDown).Row)
 
    For i = plage3.Cells.Count To 2 Step -1
 
        For j = plage2.Cells.Count To 2 Step -1
 
            If plage2.Cells(j).Value = plage3.Cells(i).Value Then
            'réécrire sur la meme ligne B(j) , C(j) et D(i) si D(i)=C(j)pour un i donné dans une nouveau fichier, comment faire ?
 
            End If
 
        Next j
 
    Next i
 
End Sub
Je remercie d'avance ceux qui voudront bien m'aider, sinon je vais me devoir me taper tout ça à la main

edit : j'ai essayé de coder par contraposée mais ca me donne un fichier erroné, qui me supprime même des lignes de la colonne ou rien n'est sensé se passer