Ejecutar procesos de una interfaz

¿Cómo puedo hacer para que al presionar un botón en la hoja de calculo de excel me apreté también el calcular de la interfaz y asignarle una celda al texbox1?

Aquí esta mi libro saludos y espero me puedan ayudar

https://www.dropbox.com/s/4jw8l16suo8bt1h/tir.xlsm?dl=0

2 respuestas

Respuesta
1

Para ...'asignarle una celda al texbox1' podes agregar esta línea a tu código:

Sub form_cálculo_precio()
'toma el valor de la celda activa
Cálculo_Precio.TextBox1 = ActiveCell.Value
'siguen tus instrucciones
End Sub

También es válido tu código dentro del UF (por supuesto que solo utilizarás 1 de los 2 ejemplos) pero debe ir en el evento Initialize del Userform (sin indicarle el nombre del UF)

Private Sub Userform_Initialize()
TextBox1 = Sheets("Evaluación").Range("D3")
End Sub

Si esto resuelve tus dudas no olvides valorar y finalizar.

Pero como puedo ejecutar la interfaz, ¿qué se apreté el botón solo calcular?

TENGO ESTO 

Private Sub UserForm_Initialize()
Cálculo_Precio.TextBox1.Text = Sheets("Evaluación").Range("h23").Value
Set OptionButton1.Value = True
CommandButton1_Click

End Sub

PERO AL QUERER QUE CommandButton1_Click ME SALE e ha producido el error 91 en tiempo de ejecución: variable de ejecución o bloque with no establecido

En el mismo evento Initialize agregá la instrucción:

Private Sub Userform_Initialize()
TextBox1 = Sheets("Evaluación").Range("D3")
Call CommandButton1_Click
End Sub

¿Ahora yo me pregunto para qué entonces un Userform? ¿Por qué no todo el proceso de cálculo solo en el botón de la hoja?... es una idea..

Sdos!

Me sale el mismo error :-/ , me pregunto lo mismo pero el Userform tiene 2 botones de opción :/

Vayamos en orden... mientras te respondo vas agregando otros códigos que yo no te pasé.

Utiliza solo lo que te envié y luego me comentas.

Sdos!

Otro aporte más a la confusión.

Lo del OptionButton que te pasa Dante no iría aquí porque ya lo tenés en el botón de la hoja...

Respuesta
1

Según entiendo quieres que al presionar tu botón de la hoja, se abra el form "Cálculo_Precio" y cuando se abra que se ejecute el CommandButton1, ¿pero antes de que se ejecute el textbox1 tome el valor de una celda?

Si es correcto lo anterior, reemplaza esto

Private Sub Cálculo_Precio_Initialize()
TextBox1.Text = Sheets("Evaluación").Range("h23")
End Sub

Por esto, para que se ejecute deberás activar una opción, en este código estoy activando el optionbutton1.

Private Sub UserForm_activate()
    TextBox1.Text = Sheets("Evaluación").Range("h23")
    OptionButton1 = True
    CommandButton1_Click
End Sub

Prueba y me comentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas