Como agregar el condicional Si ha esta formula con macros de orden de mérito

Espero me puedan ayudar, tengo una macros que me calcula el orden de merito indefinidamente que 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("C4:C" & UltimaFila)
    Celda.Value = ("=RANK(" & Celda.Offset(0, -1).Address & "," & Range("B4:B" & UltimaFila).Address & ")+COUNTIF(B4:" & Celda.Offset(0, -1).Address & "," & Celda.Offset(0, -1).Address & ")-1")
Next Celda
End Sub

Hasta alli me funciona todo correcto al momento de presionar el boton calcular, ahora lo que deseo es que le he agregado el una condición Si, para que me evalué si la celda esta vacía no me arroje error #N/A,

Si no que salga vació, caso contrario, si tiene dato me calcule la formula con la macro, lo he intentado hacer pero me sale error no se donde estaré fallando.

Esta en la formula la cual en el excel me sale correctamente:

 =SI($B4="";"";(JERARQUIA(B4;$B$4:$B$9)+CONTAR.SI($B$4:B4;B4)-1))

Respuesta
1

Modifique tu macro le añadi un iferror ahora cada que tengas un espacio en blanco la macro en vez de error pondra un espacio vacio

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas