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
21/03/2015 a las 4:37 pm
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?
21/03/2015 a las 4:47 pm
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
21/03/2015 a las 4:56 pm
Ok, entendido.
26/03/2015 a las 6:11 pm
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?
02/07/2015 a las 11:39 pm
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?
04/07/2015 a las 4:50 pm
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?
01/09/2017 a las 1:01 pm
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
12/08/2023 a las 1:07 am
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.