FUNCIONES (funciones de comprobación)

Podemos utilizar innumerables funciones dentro de VBA. También se pueden usar las propias de Excel, llamándolas desde un procedimiento o función. Por último podemos crear nuestras propias funciones. Una posible agrupación sería la siguiente:

  • Funciones de comprobación.
  • Funciones de cadenas.
  • Funciones matemáticas.
  • Funciones de conversión de tipos.
  • Funciones MsgBox e InputBox.
  • Definidas por el usuario.

Funciones de comprobación

Las funciones tienen la particularidad de que nos devuelven un valor. Las funciones de comprobación, que son las primeras que voy a abordar son muy útiles al permitirnos validad o comprobar los tipos de datos, bien los insertados en una celda o los introducidos por teclado.

Lista de Funciones de Comprobación.

IsNuméric(Expresión). Comprueba si expresión tiene un valor que se puede interpretar como numérico.

IsDate(Expresión). Comprueba si expresión tiene un valor que se puede interpretar como tipo fecha.

IsEmpty(Expresión). Comprueba que expresión tenga algún valor, que se haya inicializado.

IsError(Expresión). Comprueba si expresión devuelve algún valor de error.

IsArray(Expresión). Comprueba si expresión (una variable) es un array o no.

IsObject(Expresión). Comprueba si expresión (una variable) representa una variable tipo objeto.

IsNull(Expresión). Comprueba si expresión contiene un valor nulo debido a datos no válidos.

Función IsEmpty

Nos comprueba si una celda o rango está vacío, no hay datos.

Sintaxis

IsEmpty(expresión)

El argumento expresión requerido es un tipo de datos Variant que contiene una expresión de cadena o una expresión numérica. Sin embargo, ya que la función IsEmpty se utiliza para determinar si las variables individuales están inicializadas, el argumento expresión es generalmente un único nombre de variable.

Ejemplo:

Comprobamos si en la celda B1 de la hoja activa hay datos:

Sub ejemplo()
Dim mensaje As String

If IsEmpty(ActiveSheet.Range(“B1”)) Then

MsgBox Prompt:=”la casilla B1 está vacía”, Title:=”ERROR”

Else
mensaje = ActiveSheet.Range(“B1”)
MsgBox “En la casila B1 hay este dato :  ” & mensaje
End If

End Sub

Es complicado utilizar utilizar IsEmpty con datos recogidos por teclado mediante la función InputBox. Y ello es así porque esta función devuelve datos de tipo variant o sea cualquier expresión que se pueda evaluar a datos numéricos, de cadena o de fecha. Para entenderlo mejor modifique el código anterior por este otro:

Sub ejemplo2()
Dim mensaje

mensaje = InputBox(“Usuario”)
If IsEmpty(mensaje) Then

MsgBox Prompt:=”usuario?”, Title:=”ERROR”

Else

MsgBox “Hola ” & mensaje
End If
End Sub

Como comprobará la función IsEmpty no evalúa la cadena vacía, ya que InputBox en ese caso devolvería un cero.

Función IsNumeric/Función IsDate

Nos comprueba si una expresión se evalúa como un número, para IsNumeric o fecha para IsDate Por ejemplo evaluamos si en la celda activa hay valores numéricos:

Sub comprueba()
If Not IsNumeric(ActiveCell.Value) Then
MsgBox “Error”
Else
MsgBox “Los valores son numéricos”

End If

End Sub

Función IsObject

La función IsObject es útil solamente para determinar si un tipo de datos Variant es de VarType vbObject. Ejemplo:

Sub Obj()

Dim R As Range

‘ Si la variable R es Nothing es que no ha sido asignada, no se puede trabajar con ella

If R Is Nothing Then

MsgBox Prompt:=”La variable Objeto no ha sido asignada”, Buttons:=vbOK, _
Title:=”Error”

Else

R.Value = “Hola”

End If

End Sub

Aquí un ejemplo resumen:

Sub comprueba()
Dim cadena As Variant
cadena = ActiveCell.Value

If IsEmpty(cadena) Then
MsgBox “La celda no contiene datos”

ElseIf IsNumeric(cadena) Then
MsgBox “La celda contiene datos numéricos”

ElseIf IsDate(cadena) Then
MsgBox “La celda contiene datos tipo fecha”

ElseIf Not IsArray(cadena) Then
MsgBox “La celda no es un array”

Else
MsgBox “No hay nada para evaluar”
End If

End Sub

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: