Sub tri()
Dim str As String, str2 As String
Dim dernCol As Integer
Application.ScreenUpdating = False
For k = 0 To Sheets("données nettoyées").Range("IV4").End(xlToLeft).Column
If Sheets("données nettoyées").Range("C3").Offset(0, k) <> "" Then
Sheets("feuille de tri").Range("B1").Offset(0, dernCol * 2).Value = Sheets("données nettoyées").Range("C3").Offset(0, k)
dernCol = dernCol + 1
End If
Next k
For k = 0 To Sheets("données nettoyées").Range("IV4").End(xlToLeft).Column Step 3
For i = 4 To Sheets("données nettoyées").Range("B65536").Offset(0, k).End(xlUp).Row
For j = 2 To Sheets("feuille de tri").Range("A65536").End(xlUp).Row
If Trim(Sheets("données nettoyées").Range("B" & i).Offset(0, k).Value) = Trim(Sheets("feuille de tri").Range("A" & j).Value) Then
str = Mid(Sheets("données nettoyées").Range("C" & j).Offset(0, k).Address, 2, 1)
str2 = Mid(Sheets("données nettoyées").Range("C" & j).Offset(0, k + 1).Address, 2, 1)
If Sheets("feuille de tri").Range("IV" & j).End(xlToLeft).Column = 1 Then
Sheets("données nettoyées").Range(str & i & ":" & str2 & i).copy Destination:=Sheets("feuille de tri").Range("B" & j).Offset(0, (k / 3) * 2)
Else
Sheets("données nettoyées").Range(str & i & ":" & str2 & i).copy Destination:=Sheets("feuille de tri").Range("B" & j).Offset(0, ((k / 3) * 2))
End If
End If
Next j
Next i
Next k
Application.ScreenUpdating = True
End Sub