Copiar cada fila en una hoja que tiene como nombre el curso al que pertenece (condición).

Hola, soy poco competente con las macros, y quisiera que me echaseis una mano.
Mi problema es que trabajo en la secretaría de un centro donde hay altas y bajas de alumnado y tengo un listado general (“general” se llama la hoja), donde cada fila corresponde a un alumno/a (curso, fecha nacimiento, expediente, ….) y mi pretensión distribuir estos en varias hojas: que cada fila se copie en una hoja en el mismo archivo que tiene como nombre el curso al que pertenece (“I3A”, “I3B”,”I3C”, “I4A”, “I4B”,”I4C”, “I5A”, “I5B”,”I5C”, “1A”, “1B”,”1C”, “2A”, “2B”,”2C”, ……. Hasta “6C”), hasta ahora lo hago a mano y es algo tedioso, esperando vuestra ayuda, Gracias.

2 Respuestas

Respuesta
1

¿Quieres hacer una macro o algo así?

Lo que te recomiendo es que apliques filtro en tu hoja y copies sólo los datos del filtro,

Si tienes dudas te pido me las hagas saber.

Lo primero, muchas gracias por el interés y por responder.

Creo que lo que necesito es una macro que lo haga automáticamente.

El filtro es lo que empleo actualmente.

Gracias de nuevo.

Ok, entiendo, lo que te recomiendo para que no veas tanto código es que grabes una macro, por lo general hay un ícono en la parte superior izquierda. Cuando estés grabando la macro aplica lo que quieres tener en la macro, me imagino que es aplicar el filtro, luego copiar y pegar en la hoja que corresponda. Después revisa el código que te ha generado (alt + F11)

Recuerda que tu archivo debe tener la extensión xlsm (libro de excel habilitado para macros)

Si necesitas ayuda con lo que te generó el código me avisas.

Respuesta
1

Utiliza la siguiente macro para copiar los alumnos a su hoja de curso. Si la hoja no existe la macro la crea. Solamente cambia en la macro la columna en donde tienes a los alumnos y a los cursos, yo puse en la macro que la columna de alumnos es la "A" y la columna de cursos es la "B", pero puedes poner las columnas reales en esta parte de la macro:

c_al = "A"
c_cu = "B"

Sigue las Instrucciones para ejecutar la macro

1. Abre tu archivo de excel

2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11

3. En el menú elige Insertar / Módulo

4. En el panel del lado derecho copia la macro

5. Para ejecutarla presiona F5

Sub cursos()
'Por.DAM
    c_al = "A"
    c_cu = "B"
    Set h1 = Sheets("General")
    For i = 2 To h1.Range(c_al & Rows.Count).End(xlUp).Row
        curso = h1.Cells(i, c_cu)
        For Each h In Sheets
            If h.Name = curso Then existe = True: Exit For
        Next
        If existe Then
            Set h = Sheets(curso)
            existe = False
        Else
            Set h = Sheets.Add(After:=Sheets(Sheets.Count))
            h.Name = curso
        End If
        h1.Rows(i).Copy h.Range(c_al & h.Range(c_al & Rows.Count).End(xlUp).Row + 1)
    Next
    MsgBox "Alumnos copiados a la hoja de su respectivo curso", vbInformation
End Sub

Saludos.Dante Amor

No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas