juega con el codigo esta perfecto si uso val(text1.text) y que text1.text no tenga nada y como val devuelve el numero actual etonces devolvera 0 entiendes el concepto? ahora el uso de
text1.text="0" es tonto si se usa para comparar numeros si mas en cambio
val(text1.text)=0 es correcto ya que se comparan los mismos tipos numero a numero y NO numero Texto ¬¬" mmm bueno ahora sigamos que text1.text tiene lo siguiente
12asdaesa convinacion de numeros y letras si deseas hacer alguna operación con esto si se puedo pero lo tendras que convertir a numero mmm mejor dicho extraer el valor usando val
lo cual devolveria 12 e ignorara
asdausar val es algo indispensable para hacer operacion entre valores numericos y evitar errores por lo cual mi codigo de arriba estan correctos ojala los probaras y jugaras con tu propia logica contra la mia y la de muchos que han de pensar lo mismo je.
Nota: nunca jusgues, nunca te sueltes, nunca camines con la luz apagada podrias tropesar al andar.
Usa el -1 para o que pides Xao aca te lo dejo...
dim variable as string ' Si cambias el tipo de la funcion sacar de string a otro es recomendable cambiar igualmente el tipo de esta vable a la misma para evitarte errores futuros si ocurriesen.
Private Sub Form_Load()
variable = SacaR(10, 10)
variable=iif (variable=-1,"",variable)
MsgBox variable
variable = SacaR(val(text1.text), val(text2.text))
variable=iif (variable=-1,"",variable)
MsgBox variable
End Sub
' Fin
Function SacaR(ByVal num1 As Long, ByVal num2 As Long) As Long ' si el numero es muy grande cambia el long por double aun que no creoq ue tengas problemas con long
Dim tmp As Long'Si hay desvordamiento o error con el tipo cambia a Double xP
If num1 = 0 And num2 = 0 Then GoTo Error:
If num1 >= num2 Then
If num2 = 0 Then GoTo Error ' Esto se activa cuando hay una divición por cero
tmp = num1 / num2
ElseIf num2 >= num1 Then
If num2 = 0 Then GoTo Error ' Esto se activa cuando hay una divición por cero
tmp = num2 / num1
Else ' no creo que esta parte se ejecute pero prevengo xP
Error:
SacaR = -1 ' usa -1 para identificar este error, ya que una divicion siempre dara numero positivos ademas que no cumple lo que pides.
Exit Function ' sale e ignoa el resto del codigo por debajo de esta linea pudo ser ext sub solo si fuese un proceso simple que no devuelve anda como los eventos de un boton al ser llamados y tratados de almacenar en una variable, marcara error.
End If
SacaR = 100 - tmp
End Function
Saludos.