Encontrar celdas donde esta el valor mínimo en un Rango de Datos EXCEL VBA

Deseo encontrar la ubicación de la celdas que tengan el valor mínimo de un rango usando una macro VBA. Por ejemplo, si en el rango "A4:K4" el valor mínimo es 2 y este aparece en las celdas B4 y E4, quiero recuperar esas ubicaciones.

1 respuesta

Respuesta
1

Esta macro resuelve lo que solicits. Ajusta el rango a tu modelo.

Como la solicitud 'quiero recuperar esas ubicaciones' no da una idea cierta de cómo las esperas recibir, por el momento la macro te lo mostrará en un mensaje. En nuevas consultas podrás ampliar este pedido con más aclaraciones.

Sub buscaMin()
'x Elsamatilde
'se busca el valor mínimo en un rango
mini = Application.WorksheetFunction.Min([B2:B7])
'se recorre el rango y se guarda en una cadena de texto las coincidencias
For Each cd In [B2:B7]
If cd.Value = mini Then cadena = cadena & cd.Address(False, False) & ", "
Next cd
'muestra cadena con la ubicación de cada celda
MsgBox cadena
End Sub

Muchas gracias por tu rápida respuesta. Mira, te especifico qué es lo que quiero hacer.

Tengo una serie de personas (ID) que evaluaron a 5 marcas (A,B,C,D,E) poniéndoles notas. Lo que quiero es una macro que para cada persona, me indique cuáles fueron las marcas con la nota más baja, así como se muestra en esta figura. Podría hacerlo manual, pero el problema es que tengo cientos de personas. He intentado hacerlo, pero no consigo nada. Muchas gracias por la ayuda.

Te dejo la nueva macro que te devuelve los mínimos. Como tu imagen no da una idea cierta de la ubicación de las col para Mín la imaginé a partir de H. La macro va con comentarios para que puedas ajustar este detalle.

Sub buscaMin()
'x Elsamatilde
'se busca el valor mínimo en cada fila
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
    mini = Application.WorksheetFunction.Min(Range("B" & i & ":F" & i))
    Colx = 8   '1ra col de resultados que imaginé en H
    For j = 2 To 6   'recorre la fila buscando el min
        If Cells(i, j) = mini Then
            'coloca la letra del título en ls col MIN
            Cells(i, Colx) = Cells(1, j)
            Colx = Colx + 1
        End If
    Next j
Next i
End Sub

Para evitar demoras siempre trata de dejar un ejemplo o imagen y así desarrollamos la macro precisa para tu caso.

Te recuerdo que en este sitio debes valorar las respuestas para que no nos sigan apareciendo como 'pendientes'.

Si te queda algo para ajustar comenta... sino valora para cerrarla.

Sdos.!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas