Como llamo a esta fórmula anidada con macros de manera indefinida

Tengo una inquietud como puedo hacer esta fórmula anidada mediante macros y que sea de manera indefinida por que los datos se van a incrementar como también bajar de tal manera que cuando le de click en el botón calcular me llame a esta fórmula y que no aparezca en el excel la fórmula solo los datos.

=SI(Y(B4=0,C4<>""),"Desierto",SI(Y(B4>=1,C4=""),"Activo",SI(Y(B4>=1,C4<>""),"Inactivo")))

1 respuesta

Respuesta
1

Prueba esta macro:

Sub Calcular()
Dim nValor As Integer
Dim rCell As Range, rRng As Range
Set rRng = Range("B4:B11")
For Each rCell In rRng.Cells
    Select Case rCell.Value
        Case Is = 0
            If rCell.Offset(0, 1).Value <> "" Then
                rCell.Offset(0, 2).Value = "Desierto"
            End If
        Case Is > 0
            If rCell.Offset(0, 1).Value <> "" Then
                rCell.Offset(0, 2).Value = "Inactivo"
            Else
                rCell.Offset(0, 2).Value = "Activo"
            End If
    End Select
Next rCell
End Sub

Andy M.

Perdón, usa este que me olvide poner el rango dinámico para que crezca o se reduzca según agregues o quites datos.

Sub Calcular()
Dim nValor As Integer
Dim rCell As Range, rRng As Range
Dim uF As Long
uF = Range("B" & Rows.Count).End(xlUp).Row
Set rRng = Range("B4:B" & uF)
For Each rCell In rRng.Cells
    Select Case rCell.Value
        Case Is = 0
            If rCell.Offset(0, 1).Value <> "" Then
                rCell.Offset(0, 2).Value = "Desierto"
            End If
        Case Is > 0
            If rCell.Offset(0, 1).Value <> "" Then
                rCell.Offset(0, 2).Value = "Inactivo"
            Else
                rCell.Offset(0, 2).Value = "Activo"
            End If
    End Select
Next rCell
End Sub

:P

¡Gracias!

Muy agradecida por responder experto Andy Machin, probé su macros funciona de maravilla muy agradecida,

Saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas