Tengo un Formulario de Postulantes en excel la cual deseo me calcule con macros el orden de mérito a través de la nota.

Tengo un Formulario de Postulantes en excel la cual deseo me calcule con macros el orden de mérito a través de la nota ingresada lo he realizado con la función JERARQUÍA me sale perfecto pero lo que deseo es que me funcione con macros desde el formulario al momento que vaya ingresando se calcule todo automáticamente fila a fila.

1 Respuesta

Respuesta
1

[Hola

De hecho se puede pero es casi imposible darte una respuesta puntual sin conocer la disposición de los datos además de cómo y/o en dónde se necesitan los resultados mencionas.

Mientras das más detalles ve leyendo/investigando sobre:

Application. WorksheetFunction. Rank

Abraham Valencia

¡Gracias! Amigo experto Abraham si gusta le envío el.archivo para que lo revise cuál es el detalle.

El formulario ya está hecho guarda con sus variables apellidos , especialidad y nota y la otra caja de texto orden de mérito que es automático y también tiene un lisbox para visualizar el ingreso solo me falta el cálculo de orden de mérito para las diferentes especialidades, la cual la macro lo ingresa junto con su encabezado al momento de captar una especialidad nueva. Saludos.

Coloca tu archivo en algún "Drive" (OneDrive, Google Drive, DropBox, etc.) y deja por aquí el enlace.

Abraham Valencia

¡Gracias! 

https://drive.google.com/file/d/1ruXI_FdpZopjPBk6B7ZHIKqzjM0xKfcA/view?usp=sharing 

El formulario se ingresa de la siguiente manera, tiene al momento de llenar los campos y cuando se elige mediante el combobox una especialidad y se guardar junto con su nota y apellidos se genera un titulo y su encabezado al momento de captar una especialidad nueva también se ordena alfabéticamente por apellido, lo que falta es que me calcule con macros el orden de merito para todos los registro automáticamente. Yo lo realice con formula JERARQUIA + CONTARSI (para que no se duplique los registros que tengan nota igual, me salio perfecto lo hice en macros pero me salio solo para un encabezado.

Gracias

[Hola nuevamente

Mira, para que te des idea, vamos a suponer que estos son tus datos:

Entonces, una forma de obtener los datos sin insertar fórmulas en las celdas y tomando en cuenta si hay repetidos, es la siguiente:

Sub Ranking()
Dim Celda As Range
Dim UltimaFila As Long
Let UltimaFila = Cells(Rows.Count, 2).End(xlUp).Row
For Each Celda In Range("C2:C" & UltimaFila)
    Celda.Value = Evaluate("=RANK(" & Celda.Offset(0, -1).Address & "," & Range("B2:B" & UltimaFila).Address & ")+COUNTIF(B2:" & Celda.Offset(0, -1).Address & "," & Celda.Offset(0, -1).Address & ")-1")
Next Celda
End Sub

OJO, ya que usas varios encabezados en una misma hoja, debes colocar el ranking cada vez que terminas de insertar un tipo de datos para que la variable "Ultimafila" trabaje bien y además, en donde yo coloco "B2" también se puede obtener la celda correspondiente con variables.

Abraham Valencia

¡Gracias! 

Gracias por responder amigo Experto Abraham voy a probar ahorita el código le comento como me va.

Excelente código amigo experto Abraham pero tengo un inconveniente al momento de insertarlo en mi código para los diferentes encabezados me sale esta falla en la fórmula.

[Hola nuevamente

Por lo que se ve ahí, no hay una variable "Celda" en realidad, por lo que obviamente el VBA no sabe que hacer y lo toma como un error. Sugiero tratar de entender lo que envié, es corto y nada difícil.

Abraham Valencia

PD: Igual quiero comentarte que no es recomendable que por supuesta estética se usen encabezados diversos en una misma hoja, más aún cuando tienes una columna que identifica la especialidad

¡Gracias! 

Correcto experto Abraham excelente sugerencia, pero lo que quería salir de la duda es que si es posible que la macros extraordinaria que me ha enviado para orden merito se puede usar para diferentes encabezados como lo tengo en el ingreso de la macros que realice,ya que el final de la hoja que estoy haciendo es de varias especialidades (ADMINISTRADOR, DOCENTE, AUXILIAR, CONTADOR, LIMPIENZA, ETC y todas tiene que tener su orden merito por separado es por ello que lo hice así con su título, ya que si usted que es una gran conocedor de excel si me dice que no se puede, ya lo utilizare en diferentes hojas cada especialidad pero como quería ahorrar todo eso lo pensé hacerlo en una sola hoja todo y si no es posible utilizarlo asi ya hare como le mencione. 

[Hola

Es posible usar el código enviado en una hoja como la tuya, por supuesto, pero no puedes copiar/pegar, lo que yo he enviado es una forma de salir de tu dilema, debes adaptarlo a tu hoja y en realidad usarla tantas veces como encabezados y registros tienes, es decir, no será posible usarlo solo una vez.

Abraham Valencia

¡Gracias! 

Buena aclaración, mi dilema es que lo he intentado de muchas formas de adaptarlo pero no me sale amigo experto espero me pueda ayudar adaptarlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas