DTPicker en excel

Estoy diseñando una hoja en excel 2003 para que realice un requerimiento y necesito que en una celda una vez que se escriba una fecha valida en la misma celda se inserte un objeto DTPicker, ya esa parte la he podido completar pero a pesar de que el objeto DTPicker se inserta correctamente permanece "INACTIVO" solo si salvo la hoja y cierro excel, al volver a abrirla es posible usar el DTPicker; este es el código que incluí en el evento Worksheet_Change de la hoja:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("G2:G65536")) Is Nothing Then
    If ActiveWorkbook.ActiveSheet.Name = "Hoja1" Then
             Dim dtp As OLEObject
             Dim nombre As String
             nombre = "dtp" & CStr(Target.Row)
             If IsDate(Target.Value) Then
                Set dtp = ActiveSheet.OLEObjects.Add("MSComCtl2.DTPicker.2")
                With dtp
                    .Name = nombre
                    .Top = Target.Top
                    .Left = Target.Left
                    .Width = Target.Width
                    .Height = Target.Height
                    .LinkedCell = Target.Address
                    .Object.CheckBox = False
                End With
             Else
                On Error Resume Next
                ActiveSheet.OLEObjects(nombre).Delete
             End If
    End If
End If
End Sub
Después de insertar los DTPicker en una hoja especifica (sin salvar) y selecciono otra al regresar a la misma estos se "deforman".
Logre encontrar una solución "parcial al problema" con un código que se coloca en el evento Workbook_Open()
Private Sub Workbool_Open()
Sheets("Hoja1").Active
Range("A2").Select
Activewindow.FreezePanes = False
Activewindow.FreezePanes = True
Range("A2").Select
End Sub
Una vez que se inserta el DTPicker por la rutina que coloque en el evento Worksheet_Change() se sigue manteniendo "INACTIVO", al cambiar de Hoja "NO SE DEFORMA" y si se "ACTIVA", lógicamente el usuario va a querer que después de colocar una fecha y automáticamente insertarse en la celda el objeto DTPicker pueda también cambiar la fecha usando el objeto insertado.
¿Existe alguna forma de que el DTPicker una vez insertado se active sin necesidad de cambiar de hoja?
Gracias por la ayuda que pueda prestarme.

1 respuesta

Respuesta
Porque no utilizas un Control de calendario hará la misma función y no necesitaras de cambio de hoja para que se active, y no tendrás problemas con que se deformen.
>Un saludo
>Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas