|
Hola, Vi
Bienvenida al club de los que hacemos ejercicio ilegal de la programación sin ser programadores.
Respecto a tu inquietud, si sólo se trata de tomar dos fecha que deba ingresar el usuario, bastaria conque uses dos inputbox o cuadros de diálogo.
Así:
Sub fechas()
Fechaini = CDate(InputBox("Formato de ingreso: Dia/Mes/Año" & Chr(10) & "(ej: 24/07/2003)", "INGRESE FECHA INICIAL, por favor"))
FechaFin = CDate(InputBox("Formato de ingreso: Dia/Mes/Año" & Chr(10) & "(ej: 15/08/2003)", "INGRESE FECHA FINAL, por favor"))
With Range("D2")
.Value = Fechaini
.NumberFormat = "dd/mm/yyyy"
End With
With Range("D3")
.Value = FechaFin
.NumberFormat = "dd/mm/yyyy"
End With
End Sub
Pide ambas fechas y las coloca en las celdas indicadas, formateandolas como fecha.
Si, en cambio, el proceso amerita que incurras en un formulario, el procedimiento es un tanto más complejo
Voy a tratar de ser lo más claro posible pero te adelanto que es complicado explicarlo por esta vía, aunque en sí no es difícil armar tal cuadro de dialogo.
Lamento que no hayas aclarado qué tienes que hacer especificamente con los datos ingresado...(Los vuelcas a alguna celda? ¿Es una carga continua de datos que se deben ir acomodando en una base? ¿Esos datos sólo sirven para que una macro los utilice más adelante? etc.)
En el VBE inserta un formulario. Automáticamente tendrás un panel de diseño y una barra de herramienta con controles a agregar a tal panel.
Presiona el icono de Cuadro de Texto (TextBox) y dibuja dos. Uno para la primera fecha y otro para la final
Selecciona el correspondiente a Botones de comando y dibuja dos. Uno de ellos será el tradicional botón de Aceptar y el otro para Cancelar.
Puedes agregarle etiquetas (labels) para que muestren mensajes o indicaciones de qué va en cada campo.
Dando doble click sobre el primer botón ("Aceptar") te llevará al panel de declaraciones para que le indiques qué hacer al presionar tal botón.
Por ejemplo:
Private Sub CommandButton1_Click()
Fechaini = CDate(TextBox1.Value)
FechaFin = CDate(TextBox2.Value)
With Range("D2")
.Value = Fechaini
.NumberFormat = "dd/mm/yyyy"
End With
With Range("D3")
.Value = FechaFin
.NumberFormat = "dd/mm/yyyy"
End With
Unload Me
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
---
Como ves están asignados los programas para ambos botones. El primero toma los valores de los textbox y los pega en la hoja.
El segundo cancela el formulario.
Si quieres hacerlo aún más amigable para el usuario (lo cual necesariamente imlica más programación), puedes agregar otro par de botones de comando al lado de los textbox, para que llamen a un calendario y seleccionen la fecha desde allí.
Esto implicaría que insertes otro formulario y le incorpores un control especial llamado "Calendar" y otro duo de botones "Aceptar" y "Cancelar"
Este control de Calendario debe estar habiltado. Tienes que entrar por la opción de menú "Herramientas" | "Referencias" y marcar el control "Microsoft Calendar Control 8.0" o la versión que tengas.
Pero bueno, esto ya depende de tí.
Espero haberte ayudado.
Si así fuera, agradeceré un comentario y que la finalices.
(Recuerda que mantener cierto número de respuestas pendientes impide que otros usuarios puedan consultarme)
Un abrazo!
Fernando
"Me lo explicaron y lo olvidé,
lo leí y lo entendí,
lo hice y lo aprendí".
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
A cambio de mi tiempo, sólo te pido dos cosas:
- Finaliza (con puntaje y comentario) esta pregunta
- Ingresa al sitio www.porloschicos.com y, si quieres,
presiona el botón de donación (es gratis).
Confío en que lo harás. Por ambas cosas, muchas gracias.
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|