Hi Victor,

Maybe give the below a try, just a little note: it's never a great idea to use single letters for things like a range, maye consider using something like rCell as the reference cell within a range loop, keep the single letters to things like counters. You also should not need to use Select to achieve this and just make one cell equal another.

Sub Rep()    
    Dim rCell As Range
    
    For Each rCell In Range("D12:D" & Range("A" & Rows.Count).End(xlUp).Row)
        Select Case rCell.Value
            Case 1
            rCell.Offset(, 1).Value = 1
            
            Case 2
            rCell.Offset(, 1).Value = 2
            
            Case 4
            rCell.Offset(, 1).Value = 4
            
            Case 5
            rCell.Offset(, 1).Value = rCell.Offset(, 2).Value
            
            Case 6
            rCell.Offset(, 1).Value = 6
        End Select
    Next rCell
End Sub
Hope this helps