Macro para copiar hoja de excel y que se cojan datos de otra hoja
Estoy preparando un excel para hacer un seguimiento de mis alumnos. Tengo 1hoja para la evaluación, una hoja de asistencia para cada mes, una hoja para las notas de cada examen, una hoja para las notas de los tests físicos, 1 hoja para las notas de los trabajos... Y una hoja con el modelo de ficha de alumno con los datos que quiero que se reflejen de cada uno de ellos y que se encuentran en las hojas anteriormente mencionadas. En dicha hoja hay celdas en las que recojo los datos de evaluación (=Avaliación!I10), las faltas de asistencia (=Mar!AJ3), notas de exámenes (='Exame 1'!C4), de trabajos (='Traballo 1'!C4)...
En la ficha del alumno, tengo una autoforma (que llamo Novo Alumno) a la que le quiero asignar una macro para que me copie de una vez dicha hoja tantas veces como alumnos voy a tener a lo largo del curso. Lo que necesito es una macro que cuando pinche en la autoforma haga lo siguiente:
1. Copiar la hoja de la ficha del alumno al final de todas las hojas tantas veces como le indique y las coloque al final de todas las hojas, renombrándolas con el número de alumno del 1 al final.
2. En cada hoja copiada y renombrada, en las celdas en las que se recogen datos de otras hojas, se elijan los datos correspondientes al alumno.
Tengo este comando para hacer más o menos lo primero, pero los datos que copia son siempre los mismos, y necesito que se correspondan con cada alumno, pues cambiar manualmente la fórmula en cada celda me llevaría mucho tiempo pues manejo muchos cursos y número de alumnos:
Sub NovoAlumno()
'
' NuevoAlumno Macro
'
'
Dim I As Long
Dim xNumber As Integer
Dim xName As String
Dim xActiveSheet As Worksheet
On Error Resume Next
Application.ScreenUpdating = False
Set xActiveSheet = ActiveSheet
xNumber = InputBox("1")
For I = 1 To xNumber
xName = ActiveSheet.Name
xActiveSheet.Copy After:=ActiveWorkbook.Sheets(xName)
ActiveSheet.Name = "Al" & I
Next
xActiveSheet.Activate
Application.ScreenUpdating = True
End Sub