Mostrar el resultado de una celda de una hoja a TextBox

Tengo textbox1 escrito 3 y textbox2 escrito 5 textbox3 en blanco, van la hoja3 en B6 el textbox1 y en D6 el textbox2, en la hoja3 realizo la siguiente multiplicación B6 y D6 = 15, Lo que yo necesito es que el resultado de la F6 sanga automáticamente el las textbox3. Y toda esta información no se borre de los textbox.

Soy muy novato y necesito ayuda.

2 respuestas

Respuesta
2

Entiendo que en F6 ya tendrás la fórmula para realizar el cálculo.

Una opción sería que el resultado se muestre al presionar un botón que realiza todas las operaciones:

Private Sub CommandButton1_Click()
Sheets("Hoja3").[B6] = Val(TextBox1)
Sheets("Hoja3").[D6] = Val(TextBox2)
TextBox3.Text = Sheets("Hoja3").[F6]
End Sub

Otra opción es que el cálculo se realice al cambio en cada textbox. En este caso no necesitarás el botón de comando.

Private Sub TextBox1_Change()
Sheets("Hoja3").[B6] = Val(TextBox1)
TextBox3.Text = Sheets("Hoja3").[F6]
End Sub
Private Sub TextBox2_Change()
Sheets("Hoja3").[D6] = Val(TextBox2)
TextBox3.Text = Sheets("Hoja3").[F6]
End Sub

Si las respuestas resuelven tu consulta no olvides valorarla (excelente o buena) para darlas por cerradas.

Bien. Luego, si necesitas alguna otra aclaración o deseas dejar un comentario debes optar por 'Pedir más información', no dejar una 'nueva respuesta'.

Si en cambio la respuesta resolvió tu consulta, debes valorarla para darla por cerrada (excelente o buena).

Sdos!

Debes presionar la opción 'Pedir explicaciones' en MI respuesta no seguir agregando 'respuestas', sino no me llegan.

Este código no parece tener sentido:

Private Sub CommandButton1_Click()

MódEncimera.Ingresar_Calculo_Encimera

End Sub

Cuando necesites llamar a una subrutina ubicada en un módulo utilizá esta instrucción:

Private Sub CommandButton1_Click()

Call Ingresar_Calculo_Encimera

End Sub

Pero aquí no necesitas una subrutina, todo se hace desde el mismo UF:

Private Sub CommandButton1_Click()
'encontrar primer fila libre según col B
n = Hoja1.range("B" & rows.count).end(xlup).row +1
Hoja1.range("B" & n) = Val(TextBox1)
Hoja1.range("D" & n) = Val(TextBox2)
TextBox3.Text = Hoja1.range("F" & n)
Msgbox "Ha ingresado los metros con éxito en fila " & n & ".",,"INFORMACIÓN"
End Sub

Si aún así te queda algo por resolver (antes parecía que se trataba de Hoja3 ahora es Hoja1.... y quizás todavía quedan detalles no aclarados) podés enviarme tu libro para que lo ajuste y no perdamos más tiempo. Mis correos aparecen en mi sitio que dejo al pie. 

Si con esto tu consulta queda resuelta no olvides valorar MI respuesta (podés valorarte también en la tuya ;)

¡Gracias!  Elsa

Es correcta la información que me has comentado, muchas gracias.

Hola Elsa, tengo otras dudas y me gustaría comentarla contigo, pero no veo tu correo que aparezca en tu sitio que dejaste al pie.

Un saludo

Utiliza cualquiera de los 2 (pero no los 2 :)

Sdos!

Respuesta
1

Lo probare sin el botón de comando que es lo quería.

Lo he probado y funciona, pero a la hora de ejecutarlo se queda colgado, te adjunto y los datos.

En UserForm1

Private Sub CommandButton1_Click()

MódEncimera.Ingresar_Calculo_Encimera

End Sub

Private Sub CommandButton2_Click()

Unload Me

End Sub

Private Sub TextBox1_Change()
Sheets("Hoja1").[B6] = Val(TextBox1)
TextBox3.Text = Sheets("Hoja1").[F6]
End Sub
Private Sub TextBox2_Change()
Sheets("Hoja1").[D6] = Val(TextBox2)
TextBox3.Text = Sheets("Hoja1").[F6]
End Sub

Y en Modulos

MódEncimera

Sub Ingresar_Calculo_Encimera()

Dim n As Long
Hoja1.Select
n = 6
Do While (Cells(n, 2) <> Empty Or Cells(n, 4) <> Empty)

Loop
Cells(n, 2).Value = UserForm1.TextBox1.Text
Cells(n, 4).Value = UserForm1.TextBox2.Text

MsgBox "Ha ingresado los metros con éxito" & n & ".", vbInformation + vbOKOnly, "Información de registro"

End Sub

Algo debo de hacer mal

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas