Celda en blanco si la condición no se cumple

Tengo una fórmula en excel que ejecuto para una columna de registros: simplemente si el valor es mayor que cero que lo anote en la celda, y si no que la deje vacía. Por ejemplo en A2:

=SI(A1>0;A1;"").

Y a continuación copio esta fórmula en toda la columna A.

El problema viene a continuación, cuando ejecuto una macro: las celdas sin valor no están vacías, y es igual que pida mayor que cero o menor, siempre me da valor cuando no es cierto.

He intentado escribir en la fórmula " ", en vez de "", pero da igual. Hay otras respuestas en Internet pero no sirven o no son aplicables a mi Excel-2010.

La pregunta es:

¿Qué he de escribir en la fórmula =SI para que si la condición no se cumple la celda quede realmente vacía?

(No me importaría incluir una macro después que las hiciera vacías, pero tendría que distinguir entre las ocupadas y las que no con el fin de que las ocupadas no las toque.)

Respuesta
1

Veamos si te sirve esta otra solución. En ese primer filtro que haces, como ya pones el valor de la celda o el valor "", en la macro en lugar de buscar celda vacía puedes buscar el valor "".

1 respuesta más de otro experto

Respuesta

[Hola 

Entonces pon la macro si de ahí viene el problema

¿Tu sabes qué macro sería?

La macro que yo escribo a continuación, identifica el valor de la celda. Si está vacía debe ejecutar otro código, el problema es que no lo está. Da igual que en mi macro pida mayor que cero o menor que cero, el resultado es que siempre hay valor aunque no se muestre, y el código que se ejecuta despues no es el que necesito. Espero haberme explicado mejor, porque la pregunta es muy simple:

¿Alguien sabe qué he de escribir en la fórmula =SI para que si la condición no se cumple la celda quede realmente vacía?

Sube tu archivo a la nube y poder revisarlo

Esto sería la macro

Sub macro()
    For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
        If Cells(i, "A") > 0 Then
            Cells(i, "B") = Cells(i, "A")
        Else
            Cells(i, "B") = ""
        End If
    Next i
MsgBox "fin"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas