Aquí dejo la macro que se ejecutará estando en la hoja que debe ser pasada, o sea 1° o 2° año. La col B no debiera tener más contenido (ni notas ni comentarios) más allá de los datos de los alumnos.
Sub pasaDatos()
'x Elsamatilde
'según la hoja activa será la hoja de destino
If Left(ActiveSheet.Name, 1) = 1 Then Set hod = Sheets("Hoja4")
If Left(ActiveSheet.Name, 1) = 2 Then Set hod = Sheets("Hoja5")
'filas de origen
fini = Range("B" & Rows.Count).End(xlUp).Row
'copia
Range("A6:D" & fini).Copy Destination:=hod.[A6]
'se activa la hoja destino y se la ordena
hod.Activate
Range("A6:D" & fini).Select
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range("B6:B" & fini), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveSheet.Sort
.SetRange Range("A5:D" & fini)
.Header = xlYes
.Apply
End With
[A6].Select
End Sub
Por supuesto que faltaría aclarar algunos otros detalles... pero esto es lo que enviaste. En próximas consultas recordá de enviar todos los detalles que puedan 'modificar' el escenario que se observa en la imagen que adjuntás.
Por ej, si las hojas de años tienen información más allá de los datos (como filas de totales o comentarios), si deben limpiarse las hojas de destino antes del pase. Si el destino empieza también en fila 6...
Sdos!