Bonjour,
Effectivement > il faut déplacer la plage de L à Q pour la plage de M à R ...
Sub test()
Dim cel As Range
Dim classe As Range
Dim num As String
Dim eleve As String
Dim coche As Range
Dim lig As Long
Sheets("Répartition").Range("A3:AZ" & Rows.Count).ClearContents
lig = Sheets("Liste").Range("A" & Rows.Count).End(xlUp).Row
For Each cel In Sheets("Liste").Range("A20:A" & lig)
' Colonne M et Colonne R pour la plage
Set coche = Sheets("Liste").Range("M" & cel.Row & ":R" & cel.Row).Cells.Find("x")
If coche Is Nothing Then
eleve = eleve & vbCr & cel.Value & " " & cel.Offset(0, 1).Value
Else
num = Sheets("Liste").Cells(19, coche.Column).Value
Set classe = Sheets("Répartition").Range("1:1").Cells.Find(num)
Set classe = classe.Offset(2, 0)
If classe.Value = "" Then
classe.Value = cel.Value
classe.Offset(0, 1).Value = cel.Offset(0, 1).Value
Else
Sheets("Répartition").Cells(Rows.Count, classe.Column).End(xlUp).End(xlUp).Offset(1, 0).Value = cel.Value
classe.End(xlDown).Offset(0, 1).Value = cel.Offset(0, 1).Value
End If
End If
Next cel
If eleve <> "" Then
MsgBox ("Les élèves suivants ne sont pas positionnés dans une classe :" & vbCr & eleve)
End If
End Sub
ric