Bonsoir,

Je tente de faire une macro qui extrait les données de 3 colonnes la "A", "B" et "C" en fonction des valeurs en "D" pour en faire trois autres listes en "E", "F" et "G". Donc les valeurs en "A" qui se retrouve en "D" sont effacé de la liste "A" pour créer une liste "E", "B" en "F" et "C" en "G". Pour la colonnes "A" tout semble fonctionner. La "B" ne fonctionne pas. La "C" se fait extraire la valeur mais n'efface pas la valeur. Pouvez-vous m'aider à trouver ce qui ne vas pas?
Voici mon code:
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
Sub Extrairelesdoublons()
    Dim f1 As Worksheet
    Dim i As Long, DerLig_D As Long, DerLig_E As Long, DerLig_F As Long, DerLig_G As Long
    Dim Valeur As String
    Dim C As Object
 
    Set f1 = Sheets("Calcule")
    Application.ScreenUpdating = False
    DerLig_D = f1.[D100000].End(xlUp).Row
    For i = 3 To DerLig_D
        Valeur = f1.Cells(i, "D")
        Set C = f1.Columns("A:C").Find(Valeur, LookIn:=xlValues, lookat:=xlWhole)
        If Not C Is Nothing Then
            If C.Column = 1 Then
                DerLig_E = f1.[E100000].End(xlUp).Row
                f1.Cells(DerLig_E + 1, "E") = f1.Cells(C.Row, "A")
                f1.Cells(C.Row, "A").Delete
            ElseIf C.Column = 2 Then
                DerLig_F = f1.[F100000].End(xlUp).Row
                f1.Cells(DerLig_F + 1, "F") = f1.Cells(C.Row, "B")
                f1.Cells(C.Row, "B").Delete
            ElseIf C.Column = 3 Then
                DerLig_G = f1.[G100000].End(xlUp).Row
                f1.Cells(DerLig_G + 1, "G") = f1.Cells(C.Row, "C")
                f1.Cells(C.Row, "C").Delete
            End If
        End If
    Next i
    Set f1 = Nothing
    Set C = Nothing
End Sub