Bonsoir pascalv, frangy, le forum
Avec une variable tableau :
Option Explicit
Sub test()
Dim a, b(), i As Long, j As Long, k As Byte, n As Long
With Sheets("Feuil1").Range("a1").CurrentRegion
a = .Value
ReDim b(1 To Application.CountA(.Cells), 1 To 5)
End With
For i = 2 To UBound(a, 1)
For j = 5 To UBound(a, 2)
If a(i, j) <> "" Then
n = n + 1
For k = 1 To 4
b(n, k) = a(i, k)
Next
b(n, 5) = a(i, j)
End If
Next
Next
Application.ScreenUpdating = False
'Restitution en feuil3
With Sheets("Feuil2")
.Cells.Clear
With .Cells(1).Resize(, 5)
.Value = [{"Prénom","Nom","Classe","Zipcode","Cours"}]
.Offset(1).Resize(n).Value = b
With .CurrentRegion
.Font.Name = "calibri"
.Font.Size = 10
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.BorderAround Weight:=xlThin
.Borders(xlInsideVertical).Weight = xlThin
With .Rows(1)
.Interior.ColorIndex = 42
.BorderAround Weight:=xlThin
End With
.Columns.ColumnWidth = 12
End With
End With
.Activate
End With
Application.ScreenUpdating = True
End Sub
klin89