Calendario como validación en celda

01/12/2009 - 23:27 por Gabriel Raigosa | Informe spam
Hola,

Como se podría poner en un rango de celdas un desplegable que muestre un
calendario para escoger una fecha, algo similar a lo que se encuentra en
algunos programas como proyect, o las validaciones que se encuentran en
Internet.

La idea es que no sea una lista de fechas, lo que se quiere es el
calendario que al darle click al desplegable permita seleccionar una
fecha para esa celda.


Gabriel
 

Leer las respuestas

#1 Héctor Miguel
01/12/2009 - 23:47 | Informe spam
hola, Gabriel !

Como se podria poner en un rango de celdas un desplegable que muestre un calendario para escoger una fecha
algo similar a lo que se encuentra en algunos programas como proyect, o las validaciones que se encuentran en Internet.
La idea es que no sea una lista de fechas, lo que se quiere es el calendario
que al darle click al desplegable permita seleccionar una fecha para esa celda.



prueba con alguna de las siguientes alternativas...

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

1) puedes incrustar un control DTPicker (Date&Time) o... un control Calendar...
puede ser 'directamente' en una hoja de calculo o... a traves de un formulario de usuario
2) (p.e. en la hoja): (menu) insertar / objeto... o desde la barra de herramientas "cuadro de controles" / mas controles...
control calendar x.x (segun la version de office) o...
Microsoft Date and Time Picker x.x (SPx) -segun numero de version y service-pack del archivo-

1) suponiendo que seleccionaste el control calendario (incrustado en la hoja)...
y deseas que se muestre SOLO si (en esa hoja) se selecciona de entre el rango [A1:A5]...
y que el resultado de la seleccion se ponga en la celda activa...
en el modulo de codigo de 'esa' hoja ==Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calendar1.Top = ActiveCell.Top
Calendar1.Left = ActiveCell.Width + 5
Calendar1.Visible = Not Intersect(ActiveCell, Range("a1:a5")) Is Nothing
End Sub
Private Sub Calendar1_Click()
ActiveCell = CDate(Calendar1)
End Sub

2) suponiendo que seleccionaste el control dtpicker (incrustado en la hoja)...
y deseas que se muestre SOLO si (en esa hoja) se selecciona de entre el rango [B1:B4] y [C7]...
y que el resultado de la seleccion se ponga en la celda activa...
en el modulo de codigo de esa hoja ==Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With DTPicker1
.Visible = Not Intersect(Target, Range("b2:b4,c7")) Is Nothing
.Top = Target.Top - 1: .Left = Target.Left + Target.Width + 2
End With
End Sub
Private Sub DTPicker1_Change()
ActiveCell = CDate(DTPicker1)
End Sub

p.d. el control DTPicker requiere que esta instalado y registrado...
-> el componente (+/- C:\Windows\System[32]\mscomct2.ocx)...
el control calendar requiere que este instalado y registrado...
-> el componente (C:\Archivos de programa\Microsoft Office x.0\Officexx\MSCal.ocx)

Preguntas similares