Calcular con macros la columna nota y merito y me calcule el estado condicional

De nuevo por aquí expertos,

Tengo un libro de excel sobre un concurso, que consta de 2 hojas la primera se llama Alumno y la otra configuración, lo que deseo es que en la hoja alumno al momento de darle click al botón calcular en la hoja Alumno me arroje si es APROBADO Y DESAPROBADO, la forma de como va funcionar esta condición es la siguiente manera, en mi hoja ALUMNO tengo una columna que se llama MERITO Y NOTA FINAL lo que se tiene que hacer es comparar también con la hoja CONFIGURACIÓN si allí por ejemplo tengo en el curso LENGUAJE solo aprueban 3 y mi nota mínima aprobatoria es >= 55, osea tiene que cumplir ese criterio para que un alumno sea aprobado comparar esos criterios en esas 2 hojas para que un alumno sea aprobado y desaprobado. Cabe señalar que en mi hoja configuración desde allí se puedo disminuir o aumentar los datos y cuando le de calcular a mi hoja alumno me proceso esa condición así aumente o disminuya.

Aqui tengo mi hoja normal.

Aquí tengo hoja configuración desde donde voy a cambiar o aumentar o disminuir mis datos.

Y esta debería ser el resultado final de como debería quedar al momento de que le de al botón calcular me arroje este resultado en la columna ESTADO cuando compare dichos criterios mencionados.

Siguiente

2 respuestas

Respuesta
1

¿No es opción hacerlo con una fórmula? Así ni siquiera tienes que darle al botón Calcular, se actualizarían automáticamente según vas cambiando datos:

=SI(D3>=Configuracion!$G$3,"APROBADO","DESAPROBADO")

Pondrías esa formula en F3 para empezar, y luego arrastras y llenas el resto a partir de ahí. Seguro que sabes de que hablo.

¡Gracias! 

Los que pasa experto Machin que mostré la hoja así por que al final lo voy a manejar desde un formulario para llevar un mejor control.

Vale entonces habrá que hacer un bucle. Prueba esta macro:

Sub CristianRosales()
Dim Alumnos As Worksheet: Set Alumnos = Sheets("Alumnos")
Dim Config As Worksheet: Set Config = Sheets("Configuracion")
Dim uF As Long
Dim minAprobado As Byte
Dim rCell As Range, rRng As Range
uF = Alumnos.Range("A" & Rows.Count).End(xlUp).Row
minAprobado = Config.Range("G3").Value
Set rRng = Alumnos.Range("D3:D" & uF)
For Each rCell In rRng.Cells
    Select Case rCell.Value
        Case Is >= minAprobado
            rCell.Offset(0, 2).Value = "APROBADO"
        Case Else
            rCell.Offset(0, 2).Value = "DESAPROBADO"
    End Select
Next rCell
End Sub

:)

Respuesta
1

Este es el resultado de la macro

y esta es la macro

Sub PONER_ESTADO()
Set HA = Worksheets("ALUMNO")
Set HC = Worksheets("CONFIGURACION")
Set ALUMNOS = HA.Range("A2").CurrentRegion
NOTA_APROB = HC.Range("G3")
With ALUMNOS
    FILAS = .Rows.Count
    For I = 2 To FILAS
        CALIFICACION = .Cells(I, 4) < NOTA_APROB
        If CALIFICACION Then
            .Cells(I, 6) = "DESAPROBADO"
        Else
            .Cells(I, 6) = "APROBADO"
        End If
    Next I
End With
Set ALUMNOS = Nothing: Set HA = Nothing: Set HC = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas