Error 13 en operación básica de aritmética

Tengo el siguiente código y el siguiente formulario:

Private Sub TALLA_Change()
ActiveCell.FormulaR1C1 = TALLA
End Sub
Private Sub PESO_Change()
ActiveCell.FormulaR1C1 = PESO

IMC = Round(PESO / TALLA ^ 2, 2)

If IMC >= 18.5 And IMC <= 25.1 Then
Resultado = "NORMAL"
ElseIf IMC > 25.1 And IMC <= 29.9 Then
Resultado = "SOBREPESO"
ElseIf IMC > 29.9 Then
Resultado = "OBESIDAD"
ElseIf IMC < 18.5 Then
Resultado = "DELGADEZ"
End If

End Sub

Sin embargo, cuando el cliente trata de borrar el peso me da un error en la fórmula. ¿Alguien me puede explicar por que?

1 respuesta

Respuesta
1

Si borra el valor que haya en ese control, Talla es nulo, por tanto las operaciones dan error. Para evitarlo tienes que usar la función Nz que transformas los nulos en el valor que quieras, por ejemplo

Loquesea=Nz([talla])  implica que Loquesea=0

ò

Loquesea=Nz([talla]),2) entonces Loquesea=2

ó

Loquesea=Nz([talla],"Adios")   Loquesea=

Hola Icue, Gracias de nuevo comentar, pero esa funcionó me aparece en vea. o no se a que se refiere esa función. me ayudas?

En la referencia VBA para office. Pero por ejemplo

Como puedes ver en Texto0 no hay nada pero si pongo el cursor( aunque podría ser en cualquier otro evento, en cualquier instrucción de SQL, etc) en el cuadro de texto Texto2

Si pongo el cursor en Texto4

Si lo pongo en Texto6

Las instrucciones son

Antiguamente la instrucción Nz, abreviatura de NullZero, lo único que transformaba era los nulos en ceros, pero desde hace algún tiempo puedes elegir en que se transforma en caso de que sea nulo.

Equivale a

If isnull([texto0]) then

texto2=...

End if

Aun tengo el error en compilación :( Me un error 13 que dice no coinciden los formatos

Me rindo. Yo no le tengo puesto ningún formato

Prueba a poner

Texto0.format="Text"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas