Bonsoir,
Option Explicit 'doit être avant toute macro
Sub Test()
Dim DerLigne As Long, Ligne As Long, CL As Range
DerLigne = Range("A65536").End(xlUp).Row
Ligne = 1
Range("C1:C" & CStr(DerLigne)).ClearContents
For Each CL In Range("B1:B" & CStr(DerLigne))
If CL.Text = "X" Then
Range("C" & CStr(Ligne)) = CL.Offset(0, -1)
Ligne = Ligne + 1
End If
Next
End Sub
Sinon le reste du code est bon
A+