Como corrijo error de Excel, donde la fórmula la vuelve un resultado de texto

Tengo la siguiente situación, tengo 3 textbox en un formulario y uno de ellos está asociado a una celda con una fórmula (que es bien larga), donde 2 deben ir cambiando y el tercero muestra el resultado, como por ejemplo:

En un textbox escribo 1

En el segundo escribo 3

Y el tercero es una multiplicación y el textbox me muestra el resultado 3 dado que está asociado a la celda.

El problema es que cuando quiero cambiar los datos de los dos primeros textbox el resultado del tercero se queda pegado, y voy a la celda que está asociado y cambio la fórmula por el resultado en texto.

El ejemplo que di es bien básico, pero el resultado final es que me cambia la fórmula por el resultado en texto.

1 Respuesta

Respuesta
1

Haber si entiendo lo que tienes.

¿Cambiaste la propiedad ControlSource del TextBox3 a una celda?

Si es así la celda siempre va a tener el valor del textbox, si tu cambias el valor de la celda, en automático el valor del TextBox recibe el valor de la celda y si cambias el valor del Textbox en automático el valor de la celda se actualiza.

Entonces, si pones una fórmula en la celda, después de que das enter, ese valor en automático se convierte a texto y se almacena en el textbox en la propiedad value. Esto siempre va a ocurrir por el vínculo que estableciste en el ControlSource y porque en el textbox no acepta fórmulas, solamente texto.

Si lo que quieres, es mostrar el resultado de una multiplicación en el Texbox3, puedes hacer lo siguiente:

- Primero quita la celda del controlsource.

- Captura los datos en textbox1 y textbox2

- Con un botón por ejemplo, dentro del formulario, realiza la multiplicación:

Private Sub CommandButton1_Click()
    TextBox3 = Val(TextBox1) * Val(TextBox2)
End Sub

Recuerda siempre utilizar val(textbox) para convertir el texto que está en el textbox a número.

Por último puedes pasar el resultado a la celda que necesites:

Private Sub CommandButton1_Click()
    TextBox3 = Val(TextBox1) * Val(TextBox2)
    Range("D5") = Val(TextBox3)
End Sub

Cualquier duda puedes consultarme.

Saludos. Dante Amor

Si es lo que necesitas.

Dante, otra vez gracias por tu pronta respuesta, lo que puse de la multiplicación es solo un ejemplo, lo que necesito es que la fórmula se quede, lo logré hace poco, bloqueando la celda para realizar cambios, y el textbox me muestra la fórmula y realiza los cambios, de igual forma inhabilite el textbox para no modificarlo desde el mismo, sino que solo sea de lectura, el problema de esto es que de vez en cuando me produce errores (no siempre), lo que hace que el archivo no quede bien presentable (lo más probable que sea por lo que me mencionas, de que guarda solo texto y no fórmulas), ¿habrá otra opción para que se puedan visualizar las fórmulas?

Para mostrar una fórmula de una celda en un textbox:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    TextBox3 = Range("C3").Formula
End Sub

El resultado se vería así:

Saludos. Dante Amor

Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas