Formar grupos de alumnos en excel
hola que tal, alguien puede ayudarme necesito hacer una macro para elaborar grupos de alumnos en excel, en la hoja1 tengo datos de alumnos, con estos datos quiero hacer 14 grupos de 45 alumnos cada grupo, es decir el alumno 1 se va a la hoja 1, el alumno 2 se va a la hoja 2 y asi sucesivamente hasta el llenar el grupo 14, ojala alguien puede guiarme gracias de antemano.
1. ¿Cómo se llama la hoja en donde están los alumnos?
2. ¿Las hojas de la 1 a la 14 ya existe? ¿Cómo se llaman? Si no existen, ¿quieres qué la macro las cree? ¿Y qué nombre quieres ponerle a cada hoja?
3. ¿En qué fila empiezan los alumnos?
4. ¿En qué columna están los alumnos?
5. ¿Qué columnas de la hoja alumnos quieres pasar a las hojas de grupos?
6. ¿En qué columna de la hoja grupo quieres que ponga al alumno?
De antemano gracias, mira te explico:
1. La hoja donde están los datos se llama Alumnos con 658 registros, con los siguientes encabezados:
Ficha Nombre Promedio Genero,
originalmente están ordenados por genero
2. Necesito que la macro también cree las hojas y las nombre grupo1, grupo2, .....grupo14
cada grupo deberá ser llenado con un total de 45 alumnos, pero deben ser 23 mujeres y 22 hombres, tomando al primer alumno y lo coloco en el hoja grupo1, el alumno 2 en la hoja grupo2 y asi sucesivamente hasta completar las 23 mujeres y 22 hombres dando un total de 45 alumnos por grupo.
3 y 4. Los datos inician en la columna A y en la fila 2
5. Quiero pasar las 4 columnas
6. Iniciando en la columna A1
De verdad te agradecería tu ayuda ojala puedas asesorarme por que de macros entiendo muy poco.
Necesito que me digas, en la columna género, con qué palabra o letra identificas si es hombre o es mujer.
Por la macro no te preocupes yo la hago para que te funcione con los datos que me diste y te enviaré las instrucciones para que puedas ejecutarla.
Sigue las Instrucciones para un botón y ejecutar la macro
1. Abre tu libro 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. Ahora para crear un botón, puedes hacer lo siguiente:
6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona Asignar macro / Selecciona: grupos2
9. Aceptar.
10. Para ejecutarla dale click a la imagen.
Sub grupos2() 'Por.DAM Set h1 = Sheets("alumnos") u = h1.Range("A" & Rows.Count).End(xlUp).Row With h1.Sort .SortFields.Clear: .SortFields.Add Key:=h1.Range("D2:D" & u) .SetRange h1.Range("A1:D" & u): .Header = xlYes: .Apply End With On Error Resume Next borrar For i = 1 To 15 Sheets.Add(After:=Sheets(Sheets.Count)).Name = "Grupo" & i h1.Rows(1).Copy Rows(1) Next g = 1 Set b = h1.Columns("D").Find("Masculino") If Not b Is Nothing Then f = b.Row For i = 2 To f - 1 If g = 16 Then g = 1 Set h2 = Sheets("Grupo" & g) g = g + 1 c = c + 1 j = h2.Range("A" & Rows.Count).End(xlUp).Row + 1 h1.Rows(i).Copy h2.Rows(j) h1.Rows(f).Copy h2.Rows(j + 1) f = f + 1 Next End If MsgBox "Se crearon los grupos", vbInformation, "GRUPOS" End Sub Sub borrar() 'Por.Dam Application.DisplayAlerts = False For Each h In Sheets If h.Name <> "alumnos" Then h.Delete Next End Sub
La macro te va a crear 15 hojas, ya que por el número de alumnos que tienes que son 658, requieres de 15 hojas. Porque 45 X 14 = 630, entonces sobran 28, esos 28 que sobran los voy a poner en la hoja 15.
Saludos. DAM
Si es lo que necesitas, no olvides finalizar la pregunta.
hola ya la ejecute esta excelente, pero hay un problema, si me esta colocando una mujer y un hombre eso esta correcto pero el siguiente registro lo esta colocando en la misma hoja del grupo1
Por ejemplo estos son mis registros
ficha nombre promedio genero
201 karla 9.3 Femenino
205 Luisa 9.1 Femenino
204 ELena 8.9 Femenino
201 Liz 8.9 Femenino
199 Ana 8.9 Femenino
197 Ofelia 8.6 Femenino
196 Feli 8.6 Femenino
101 Esmeralda 9.3 Femenino
105 Selene 9.1 Femenino
104 Laura 8.9 Femenino
101 Ivone 8.9 Femenino
189 Karen 8.9 Femenino
127 Sara 8.6 Femenino
136 Paty 8.6 Femenino
124 Carolina 8.4 Femenino
Lo que yo necesito es que
karla quede en la hoja grupo1
Luisa en la hoja grupo2
Elena en la hoja grupo3
Lis en la hoja grupo4
Ana en la hoja de grupo5
Ofelia en la hoja de grupo6
Feli en la hoja de grupo7
Esmeralda en la hoja de grupo8
Selene en la hoja de grupo9
Laura en la hoja de grupo10
Ivone en la hoja de grupo11
Karen en la hoja de grupo12
Sara en la hoja de grupo13
Paty en la hoja de grupo14
y pasaría lo mismo con los hombres
hasta dar un total de 23 mujeres y 22 hombres en cada hoja para dar un total de 45 alumnos en cada grupo
y Carolina de nueva cuenta la asignaría a la hoja del grupo1, y asi sucesivamente con mis demás registros.
te agradezco mucho y espero me haya dado a entender.
Disculpa, pero toma el primer registro de mujeres y el primer registro de hombres y lo pone en el grupo1, luego toma el segundo registro de mujeres y el segundo de hombres y los pone en el grupo2.
A lo mejor necesitas que tengan algún orden en especial.
Revisa bien la hoja de alumnos después de ejecutar la macro y verás que si te pone como te lo digo.
Si quieres un orden en especial, envíame tu archivo original y dime con ejemplos cómo quieres que vaya el orden, no tienes que hacer toda la distribución, solamente con unos cuantos ejemplos.
Hola, buena tarde, disculpa que hasta el día de hoy cheque tu respuesta, el fin de semana no tuve acceso a internet, ok te envió mi archivo.
De antemano gracias por tu apoyo.
¿Pero revisaste los resultados tal y como te indiqué?
El resultado está como lo pediste.
Lo que hace la macro es ordenar los datos por género, incluso comentaste que los datos están ordenados por género. Si tienes "Femenino" y "Masculino" entonces te pone todas las mujeres primero y después a todos los hombres. Ya que están ordenados toma a la primera mujer y al primer hombre y los pone en el grupo1, luego toma a la segunda mujer y al segundo hombre y los pone en el grupo2 y así hasta el grupo15 y luego continúa nuevamente con el grupo1. Eso es lo que pediste.
- Compartir respuesta