Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Función ISERROR

| 8 comentarios

Función ISERROR

Es una función de VBA que nos indica si la variable contiene un valor de error (#N/A, #¡VALOR! , #¡REF! , #¡DIV/0!, #¡NUM!, #¿NOMBRE?, #¡NULO! )  la función devuelve True, de lo contrario la función devuelve False.

Tipos de errores:

  • #N/AEn tu fórmula o función hay algún valor que no está.
  • #¡VALOR!Estas utilizando un operando o un argumento no valido, por ejemplo texto en vez de números.
  • #¡REF!Tu fórmula se está refiriendo a una celda que no es válida, por ejemplo porque se elimino.
  • #¡DIV/0!Aparece cuando en una fórmula estas dividiendo entre cero o entre una celda vacía.
  • #¡NUM!Te indica que los valores numéricos no son validos, es o bien un número demasiado grande o demasiado pequeño y Excel no lo puede representar.
  • #¿NOMBRE?El texto de la fórmula que has introducido no es reconocido por Excel.
  • #¡NULO!En tu fórmula haces referencia a dos rangos que no tienen intersección entre ellos.

 

La sintaxis de la función es la siguiente:

IsError (Var)

El valor que retorna es de tipo:

Bool (True o false)

 

A continuación se muestra una programación de un ejemplo en la que se utiliza la función ISERROR.

 

Sub validacion()

For i = 2 To 21

Cells(i, 5).Select

If IsError(ActiveCell) Then

Selection.Font.ColorIndex = 3

Else

If ActiveCell = "CERTIFICADO" Then

Selection.Font.ColorIndex = 10

Else

If ActiveCell = "CONSTANCIA" Then

Selection.Font.ColorIndex = 25

End If

End If

End If

Next

End Sub

 

Este código nos sirve para identificar y colorear los errores dentro de una base de datos. La identificación lo realiza y luego nos muestra el valor de la celda de un color rojo en caso sea error, un color verde si en caso  la celda contiene el texto “CERTIFICADO” y un color azul en caso la celda contiene el texto “CONSTANCIA”.

 

A continuación se adjunta la macro del ejemplo mencionado: FUNCION ISERROR

Elaborado por Marilyn

8 comentarios

  1. No observo el uso de TRUE or FALSE en la linea de comandos. Dice
    If IsError(ActiveCell) Then
    Selection.Font.ColorIndex = 3
    Else...

    ¿por defecto es TRUE?

  2. Hola Saúl

    IsError(ActiveCell) sirve para evaluar la celda activa ... en el archivo adjunto se encuentran datos que deben ser analizados desde E2 hasta E21 .. lo cual se realiza por medio del FOR.

    es decir primero revisa E2, con IsError(ActiveCell) se determina si en esa celda hay un error o no ... luego revisa E3 .. y asi sucesivamente.

    Saludos

    • Ok, entendido.

  3. En el ejemplo de la función ISERROR. en el editor de Visual Basic, se encuentran
    If IsError(ActiveCell) Then
    Selection.Font.ColorIndex = 3
    Else
    ¿cuál es el objetivo en este ejemplo de usar esta función?

  4. Esta función es similar a SI.ERROR del Excel el cual uso bastante en los cuadros que manejo, ya que a veces una celda se divide entre cero y evito que salgan errores en todo el cuadro.
    ¿ El ColorIndex 3, 10 y 17 nos muestra el rojo, verde y azul, en dónde podemos buscar estos números de colores, en caso uno desee digitar otros?

  5. Esta función es perfecta para manejo de inventarios, manejo de cuentas, y cualquier otra tabla de excel en las que se necesite un análisis entre lo que se debería tener y lo que se tiene.

    ¿Se puede poner cual quier tipo de evaluación, ya sea numérica o de texto?

  6. Hola, he creado una función personalizada, que evalúa una cadena de texto a 10 caracteres. Me funciona perfectamente hasta la fila 65536, pero cuando copio la furmula a partir de la fila 65537 produce un error dentro de la formula.
    Eje. en la fila A65536 contiene =DDCMarca(B65536)
    al copiarla a siguiente fila A65537 = DDCMarca(#¡REF!)

    Tengo MSExcel 2007 Professional!

    Aca les dejo el codigo VBA

    Public Function DDCMarca(Bin)
    If Not IsNumeric(Bin) Then
    DDCMarca = ""
    Else
    If Len(Bin) > 0 _
    And Len(Bin) <= 10 Then

    If Mid(Bin, 1, 2) = "36" Then
    DDCMarca = "Diners"
    ElseIf Mid(Bin, 1, 2) = "37" Then
    DDCMarca = "Amex"
    ElseIf Mid(Bin, 1, 1) = "4" Then
    DDCMarca = "Visa"
    ElseIf Mid(Bin, 1, 1) = "5" Then
    DDCMarca = "Master"
    ElseIf Mid(Bin, 1, 1) = "7" Then
    DDCMarca = "Propietaria"
    ElseIf Mid(Bin, 1, 1) = "6" Then
    If Mid(Bin, 1, 10) = "6000000000" Then
    DDCMarca = "Discovery"
    Else
    DDCMarca = "Otros"
    End If
    End If
    Else
    DDCMarca = ""
    End If

    End If
    End Function

  7. Querida y estimada Marilyn ; yo use el siguiente código ( mejorado )
    Option Explicit
    'MEJORE EL CODIGO DE MARILYN
    Sub USO_DE_FUNCION_VBA_ISERROR()

    Dim T As Variant
    Dim FILAS As Variant

    'TAMBIEN PUEDE SER
    'Recorrer filas con macro y contar celdas con datos
    FILAS = Worksheets("VBA ISERROR").Range("F" & Rows.Count).End(xlUp).Row

    For T = 9 To FILAS

    Cells(T, 6).Select

    If IsError(ActiveCell) Then
    Selection.Font.ColorIndex = 3 '3 ES COLOR ROJO

    Else:
    If ActiveCell = "CERTIFICADO" Then
    Selection.Font.ColorIndex = 43 '43 color verde oscuro
    Else:
    If ActiveCell = "CONSTANCIA" Then
    Selection.Font.ColorIndex = 55 '55 color azul oscuro
    End If
    End If
    End If
    Next T
    End Sub

    Sub BORRAR_FORMATO()
    Worksheets("VBA ISERROR").Range("F:F").ClearFormats

    End Sub

    ASI CUANDO SE SIGA LLENANDO DE VALORES LA TABLA, AL EJECUTAR LA MACRO CON BOTON CONTROL DE FORMULARIO SE APLICARA EL CODIGO.

Deja una respuesta

Los campos requeridos estan marcados con *.