Problema con al ubicar valor mínimo diferente de cero en un rango

Amigo Luismodelo, disculpa que te vuelva a molestar con mis preguntas, pero he tenido un pequeño error con el código que tan amablemente me brindaste, lo he estado revisando tratando ver el porqué del error pero no he podido dar con eso.

Te adjunto una imagen y el código de la situación presentada.

Como verás en la imagen tengo una tabla, en donde el rango donde quiero hallar el valor mínimo y máximo se encuentra en la columna ( F, fila 5) hasta la columna (F, ultimafila escrita -1)

Los numeros que se originan en ese rango son obtenidos mediante un condicional y una formula ya corregida como tu me dijisite y como se muestra en la imagen

=SI(C5=0,0,REDONDEAR(D5/C5,2))

La imagen del caso en donde se presenta el problema la adjunto a continuación

El rango esta sombreado de color rojo, los datos ya estan redondeados como me sugeriste. Pero a pesar de eso me da el siguiente error cuando trato aplicar la macro y al depurarlo veo que error es el valormínimo (buscamin)

Es bueno mencionar que me pasa solo en algunas situaciones, como veras en el codigo final que pongo abajo mi idea es sobrear y colorear tanto la celda donde esta el valor maximo y mínimo de colores diferentes. Te adjunto el código y agradecido nuevamente por tu respuesta amigo.

Sub buscamaximominimo()
ultimafila = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
Set rango = ActiveSheet.Range(Cells(5, 6), Cells(ultimafila - 1, 6))
contarsi = Application.WorksheetFunction.CountIf(rango, 0)
If contarsi > 1 Then
   Set buscamin = rango.Find(Application.WorksheetFunction.Small(rango, contarsi + 1), LookIn:=xlValues, lookat:=xlWhole)
   If Not buscamin Is Nothing Then
   ubica2 = buscamin.Address
   End If
End If
If contarsi = 0 Then
    Set buscamin = rango.Find(Application.WorksheetFunction.Min(rango), LookIn:=xlValues, lookat:=xlWhole)
    If Not buscamin Is Nothing Then
    ubica3 = buscamin.Address
    End If
End If
Set buscamax = rango.Find(Application.WorksheetFunction.Max(rango), LookIn:=xlValues, lookat:=xlWhole)
If Not buscamax Is Nothing Then
ubica1 = buscamax.Address
End If
Range(ubica1).Select
With Selection
.Font.Color = RGB(255, 0, 0)
.Interior.Color = RGB(242, 220, 219)
.Font.Bold = True
.Font.Size = 12
End With
If contarsi = 0 Then
    Range(ubica3).Select
    Else
    Range(ubica2).Select
End If
With Selection
.Font.Color = RGB(49, 135, 155)
.Interior.Color = RGB(220, 230, 241)
.Font.Bold = True
.Font.Size = 12
End With
 

1 Respuesta

Respuesta
1

Yo lo he probado y me funciona perfectamente. Si quieres, mándame el archivo y lo veré.

[email protected]

Ok amigo! muchas gracias te lo envío inmediatamente.

Ya te he mandado el archivo corregido

Recuerda finalizar y puntuar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas