Macro para validar que no se ejecuta correctamente

Tengo problemas con una macro que no logro validarla para que se ejecute de manera correcta, el caso es el siguiente: Tengo una hoja de Excel para ingresar datos a partir de la celda 9 en adelante, (en las columnas B, E y F), lo primero que todo es que debe haber datos en la celda B para evaluar los datos de la celda E y F, una vez que introduzca un dato en la celda B, debe haber un dato en la celda E o un dato en la celda F para la validación, jamás deben haber datos en ambas celdas o quedar ambas celdas en blanco (en ese caso debería aparecerme un mensaje que me lo notifique), en este sentido si introduzco datos correctamente en la celda 9 la macro no se ejecuta, pero introduzco correctamente datos en la celda 9, 10, 11 y así sucesivamente para alimentar la base de datos la macro si se ejecuta como quiero, anexo el código para ver cómo me pueden ayudar, gracias.

Sub novacia()
Dim lr As Long, fila As Variant, CE As Long, CF As Long, novacias As Integer
    novacias = WorksheetFunction.CountA(Range("B9:B1048576")) - WorksheetFunction.CountA(Range("E9:E1048576")) _
    - WorksheetFunction.CountA(Range("F9:F1048576"))
    If novacias <> 0 Then
        MsgBox "existen celdas de entradas o salidas duplicadas o sin datos"
    Else
        CE = Range("E" & Rows.Count).End(3).Row
        CF = Range("F" & Rows.Count).End(3).Row
        If CE = 8 And CF = 8 Then
            MsgBox "Debe ingresar algún valor de Entrada o Salida de Mercancia"
            Exit Sub
        Else
            If CE > CF Then
                lr = CE
            Else
                lr = CF
            End If
        fila = Evaluate("=SMALL(IF((E9:E" & lr & "<>"""")*(F9:F" & lr & "<>""""),ROW(E9:E" & lr & ")),1)")
        If IsError(fila) = False Then
            MsgBox "No se puede CREAR un registro con Entrada y Salida de Mercancia en la misma celda"
            Range("F" & fila & "").Select
            Exit Sub
        End If
        End If
    End If
End Sub

Añade tu respuesta

Haz clic para o