Excel - Contar calificaciones aprobatorias por columnas con codigo VBA

 
Vista:
Imágen de perfil de Arturo
Val: 4
Ha aumentado su posición en 8 puestos en Excel (en relación al último mes)
Gráfica de Excel

Contar calificaciones aprobatorias por columnas con codigo VBA

Publicado por Arturo (3 intervenciones) el 17/01/2017 20:58:22
contar-calificaciones-aprovatorias

Buena tarde, el que pueda apoyarme en realizar esta tarea, se lo agradeceré mucho.

Lo que pretendo hacer es contar por Columnas de Materias, cuantos alumnos reprobaron o pasaron por materia y al final de cada columna poner el valor o poner los datos en otra hoja de excel.
Mi problema es que son 45 planteles con sus propios grupos y este procedimiento lo tendría que hacer uno por uno, por lo cual requiero una automatización con macros o código VBA que me ayude a hacerlo más rápido.

De antemano muchas gracias por apoyo.

Les dejo una imagen de mi tabla de ejemplo.

de igual manera les adjunto un archivo de excel fuente.


Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 3.809
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Contar calificaciones aprobatorias por columnas con codigo VBA

Publicado por Andres Leonardo (1503 intervenciones) el 17/01/2017 22:27:15
que seria lo optimo hacer una sola tabla con base de datos.... y una tabla dinamica nos daria esto... pero bueno lo tienes asi

Consulto

la columna promedio la veo variar respecto a colimna (en una es la N en otras la O) la pregunta siempre se llamara Promedio....

Con VBA es sencillo es de rrecorrer el libro cosa que si he hecho antes aclarame el punto y en lo posible te ayudo

**Que hago con los valores errados en la columna Promedio _(Div/0) que ghago???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Arturo
Val: 4
Ha aumentado su posición en 8 puestos en Excel (en relación al último mes)
Gráfica de Excel

Contar calificaciones aprobatorias por columnas con codigo VBA

Publicado por Arturo (3 intervenciones) el 17/01/2017 22:36:00
Buena tarde, las columnas después de la ultima materia, yo las agregué para hacer una estadística.
Con respecto a los valores (Div/0), son alumnos que no presentaron el examen por lo esos no se contemplan en el conteo.
Con respecto a las columnas de las otras hojas de excel, varían porque a partir del tercer semestre las materias son diferente dependiendo de la especialidad.
Gracias.....

Saludos....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.809
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Contar calificaciones aprobatorias por columnas con codigo VBA

Publicado por Andres Leonardo (1503 intervenciones) el 18/01/2017 18:30:41
Considerando mi primera respuesta y el muy buen ejemplo de PEPE a quien respeto mucho con su criterio ghe realizado algo en VBA para que puedas hacer lo qeu pidres, ahora... hay que tener algunas consas en cuenta

1.-El valor de promedio nunca podria ser DIV/0 por eso le puse una validacion para que si es este error de -1 y esto sirve par que la macro no considere el valor para el porcentaje....
Ahora el porcentaje se saca en valor total a todos si es asi ... tendrias que decir que el 100% del promedio solo son los que han dado todos los parciales, si uno no esta completo no lo considera

Si quieres considerarlos deberemos cambiar unos calculos ... nada mas ... te adjunto libro imagen y todo

Dejo el codigo por si alguien lo quiere ver...

'Recorro las hojas excepcion de resumen
'Recorro todas las celdas hasta encontrar promedio (en todas las hojas debe haber una llamada a promedio)
'Recorro los registros de la columna proimedio sacando valores acumulando y viendo quienes aumentan el valor de repro y aprobados.
'entro a la hoja resumen y pongo los calculos....


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Sub Resumen()
'
' Resumen Macro
' Recorre todas las hojas ... y luego de las hojas cada columna promedio, si el valor no es numerico lo salto  y los resultados lo pongo en la Hoja Resultado
'
' Acceso directo: CTRL+q
'
        Dim WS_Count As Integer ' Con esto voy a revisar
        Dim A, R As Integer ' Contadores de Aprobados Reprobados
        Dim I As Integer 'contador de hojas
        Dim C As Integer 'contador de registros de cada hoja
        Dim K As Integer 'Contado de Registros hoja Resultado
        Dim X As Integer 'Contador de las celdas promedio
        Dim Y As Integer 'Contador de los registros de la hoja
        Dim Salir As Boolean
        Dim Salir2 As Boolean
         ' Set WS_Count equal to the number of worksheets in the active
         ' workbook.
         WS_Count = ActiveWorkbook.Worksheets.Count
         C = 65
         B = 2
         Y = 0
         ' Begin the loop.
         For I = 1 To WS_Count
            Debug.Print ActiveWorkbook.Worksheets(I).Name
            Salir = False
            If ActiveWorkbook.Worksheets(I).Name <> "RESULTADOS" Then
                ActiveWorkbook.Worksheets(I).Select
                'determinar Columna Promedio
                X = 2
                While C <= 90 And Salir = False
                Y = 0
                    Debug.Print Range(Chr(C) & 1).Value
                     If Range(Chr(C) & 1).Value = "PROMEDIO" Then
                        Salir = True
                        'Si la columna Es el promedio ahora si comienzo
                         A = 0
                        R = 0
                        While X <= 100 And Range("C" & X).Value <> ""    ' 100 por numero de empleados
 
                            Debug.Print Range("C" & X).Value
                            If Range(Chr(C) & X).Value >= 0 Then
                                Y = Y + 1
                                If Range(Chr(C) & X).Value >= 6 Then
                                   A = A + 1
                                Else
                                    R = R + 1
                                End If
                                X = X + 1
                            Else
                                X = X + 1
                            End If
                          Wend
                    Else
                        C = C + 1
                    End If
 
                Wend
            End If
            Sheets("Resultados").Select
            Range("A" & B).Value = ActiveWorkbook.Worksheets(I).Name
            Range("B" & B).Value = A
            Range("C" & B).Value = R
            Range("F" & B).Value = Y
            Range("D" & B).Value = (A / Y)
            Range("E" & B).Value = (R / Y)
 
            B = B + 1
         Next I
End Sub
Candelaria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.809
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Contar calificaciones aprobatorias por columnas con codigo VBA

Publicado por Andres Leonardo (1503 intervenciones) el 19/01/2017 20:22:09
He contestado te sirvio??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Arturo Loría
Val: 4
Ha aumentado su posición en 8 puestos en Excel (en relación al último mes)
Gráfica de Excel

Contar calificaciones aprobatorias por columnas con codigo VBA

Publicado por Arturo Loría (3 intervenciones) el 19/01/2017 21:52:23
Buena tarde, si, si me sirvió. Gracias.

Este mismo ejemplo, lo estou tratando de adecuar para que que me los aprobados por materia, es decir, que me de este resultado.

nombre Matematicas Español quimica

Jóse 8 5 5
Juan 7 6 5
Pedro 5 10 7

Aprob 2 2 1
Reprob 1 1 2

Esto lo hago con la funcion contar.si y el rango con el criterio ">=6"

Hay alguna forma de automatizarlo?

Mi problemática es que en el portal donde obtengo lo resgistros se bajan uno po uno por grado y hay Planteles que tienen hasta 48 archivos ya que hay grados hasta con 14 grupos y se manejan 3 grados.


De antemano gracias por al ayuda brindada.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.809
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Contar calificaciones aprobatorias por columnas con codigo VBA

Publicado por Andres Leonardo (1503 intervenciones) el 19/01/2017 22:16:44
que hay

Haber .. vamos.... Primero lo primero .. cuando pidas ayuda no olvides contestar como te fue .. Uno se queda preocupado no sabe que tal te fue ...........JAJAJAJJA no mentira... pero te dire que en lo particular es importante que den retro alimentacion de las respustas y si te sirvio el +1 ...

Haber a lo que es....

Cuando solo tenias la columna promedio... todos tenian columna promedio .. y te servira si la columna matematicas existe en todas.. pero si no ... no puedes meter una matriz de nxm en una de ixk ..... entonces si podemos hacer una validacion ... pero en cambio hay ciertas materias que otros cursos no tienen... y es ahi cuando la hoja resultados no es optima para lo que quieres.... Ahora .. si vas a copiar y pegar ... te recomiendo hacer la base de datos ... es decir ... mejor haz algo que te vaya por hoja haciendo la estructura base de datos y esta a travez de tablas dinamicas te de mejores resultados...

Saludos
Andres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de wordexperto.com
Val: 6.576
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Contar calificaciones aprobatorias por columnas con codigo VBA

Publicado por wordexperto.com (2290 intervenciones) el 18/01/2017 11:11:56
Hola Arturo:
Ya te ha dicho Andrés cuál es la solución.
Te he subido un ejemplo para que veas de lo que hablamos.
Una sola base de datos en una hoja, para toda la vida. Puedes añadir más columnas si necesitas.
Otra hoja con la tabla dinámica para que hagas los informes que necesites. He puesto tres ejemplos de las casi infinitas posibilidades.
Tu decides.
https://wordexperto.com/blog/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar