Hola!. Tengo una hoja de calculo que, entre otras cosas, devuelve un valor en función de otro introducido. Eso ya esta hecho, lo que quiero saber es si hay alguna forma de convertir eso en una especie de "archivo ejecutable", es decir, que sin abrir la hoja de calculo me permita introducir el valor y devolverme el resultado de la fórmula. Muchísimas gracias por tu ayuda. Un saludo.
Athenas : ¿Me podrías dar más datos de tu necesidad? ¿Dónde ingresarías el valor y donde querrías obtener la respuesta? ¿Sabés programar Visual Basic? ¿O querés ingresar el dato en una celda de OTRA hoja de Excel y obtener allí la respuesta?
Muchísimas gracias por responder tan rapido. A ver si soy capaz de explicarme. Tal como lo tengo hecho, si yo abro esa hoja de calculo, introduzco un valor y ya me devuelve lo que quiero, con lo cual... funciona. Lo que yo quiero es poder evitar el tener que abrir la hoja para introducir el valor y obtener el resultado, lo que deseo es poder tener un acceso directo en el escritorio y que se me abriera una especie de ventanita pequeña en la que introducir ese dato, aceptarlo, y ver el resultado, sin llegar a abrir (o al menos ver que se abra) la hoja de calculo. Es decir, "convertirlo" en una especie de programita ejecutable. Si sigues sin entenderme, y me das una dirección de correo te mando el archivo (realmente, la hoja en si es muy muy simple) ¿Programar en visual basic? Pues... realmente no. hago macros, pero por el simple procedimiento de grabar y luego modificar en el editor de visual para obtener lo que deseo. Espero haberte aclarado algo. Muchísimas gracias de nuevo por tu atención.
Una posibilidad sería usar un archivo excel (no visible) que llamara a un formulario simple, que sirva de interfase. Por favor, mandame el archivo a : [email protected] Mandame tu dirección y te mando la respuesta.
Athenas : Estuve pensando la solución y podría ser esta : Desde Excel tipeá ALT+F11 para ingresar a Visual Basic. Insertá un Módulo, mediante el Menú "Insertar / Modulo". Volcá allí el siguiente código : Sub LibroVisible() Application.Visible = False ThisWorkbook.Activate FrmPrincipal.Show End Sub Sub salir() ActiveWorkbook.Saved = True Application.Quit End Sub Insertá un Formulario, mediante el Menú "Insertar / User Form". Si no está visible el CUADRO DE HERRAMIENTAS (aunque debería) mostrarlo mediante "Ver / Cuadro de Herramientas". Antes que nada te aclaro que la manera de volcar un CONTROL en el FORMULARIO es esta : Marcar el CONTROL en el Cuadro de Herramientas (Click) y volcarlo en el FORMULARIO haciendo CLICK en este y desplazando el mouse sin soltar el botón izquierdo. Hay que volcar 3 Controles: 1) Un cuadro de texto (ab) 2) Una etiqueta (A) 3) Un Botón de Comando Mediante la tecla F4 (Ver / Ventana Propiedades) podes ver la ventana de Propiedades. Para cambia las propiedades de un control o el formulario, conviene hacer un click sobre este, y en la "Ventana de Propiedades" se muestran las de este. Hay que cambiar algunas propiedades. En Formulario : propiedad NAME debe ser "FrmPrincipal" (sin comillas). En "Cuadro de texto" : NAME debe ser "TxtDato", TEXT debe ser 0 (cero). En "Etiqueta" : NAME debe ser "LblRespuesta", CAPTION debe ser "" (nada). En "Botón de Comandos" : NAME debe ser "CmdExit", TABSTOP debe ser FALSE. Listo con las propiedades. Ahora el código. CTRL+R "Ver / Explorador de Proyectos") para ir a la ventana de Proyectos. Hacer DOBLE CLICK en ESTE LIBRO. Volcar en la ventana que se abre el siguiente código. Private Sub Workbook_Open() LibroVisible End Sub Ahora hacer doble click (en la ventana de Proyectos) en FrmPrincipal . Si se muestra el formulario, presionar la tecla F7 ("Ver / Código"), para ir a la ventana de código . Volcar allí el siguiente código (2 rutinas) : Private Sub CmdExit_Click() salir End Sub Private Sub TxtDato_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim NombreHoja as string Dim CeldaDato as string Dim CeldaResp as string NombreHoja="Hoja1" CeldaDato="A1" CeldaResp="B1" '** si presionas enter , pone el resultado en la celda If KeyCode = 13 Then Worksheets(NombreHoja).Range(CeldaDato).Value = Val(TxtDato.Text) LblRespuesta.Caption = Str(Worksheets(NombreHoja).Range(CeldaResp).Value) End If End Sub Volvé a EXCEL y grabá el archivo. Las rutinas que te pasé, suponen que los datos están en las celdas A1 (dato), A2 (Respuesta de fórmulas) de la "Hoja1". Si las celdas son otras y la hoja tiene otro nombre, deben cambiarse los datos en las rutinas. Grabá el archivo y cerralo. Cuando lo abras, se va a ocultar el EXCEL, quedando solo el formulario para ingresar los datos (presionar ENTER)y ver los resultados. Cuando presiones el botón, se cierra el excel (que estaba oculto). Cuidado cuidado cuidado Tené cuidado, si ejecutás el archivo (ej acceso directo en el escritorio), se va a abrir en el Excel que tengas abierto, y cuando presiones el Botón va a intentar cerrarlo . Si tenías abiertas otras planillas, va a salir un mensaje para Guardar su Valores (¿Desea guardar los cambios efectuados en libro ...?) . Si presionas "Cancelar", el excel va a mostrar la hoja con fórmulas. Si aceptas "No" se va a cerrar la planilla sin guardar. Con respecto a esto, hay varias posibilidades, por ejemplo, que antes de mostrar el formulario, se verifique si hay libros abiertos con cambios sin guardar y que se le avise al usuario que debe cerrarlas antes de abrir el "Ejecutable". Para abrir sin que se ejecute la macro : Ingresá al Excel, Abrí el archivo (desde Excel), manteniendo presionada la tecla SHIFT. Espero haber sido bastante claro. Estoy a tu disposición por cualquier aclaración. Suerte.