¿Como capturar la fecha de una celda Excel en un DTPicker?

Tengo este codigo que hace es al dar click en linea del ListBox, pasa a los textbox la linea de datos en la cual hago click

Private Sub lista_Click() 'LISTBOX
    Dim v   As Variant
    Dim txt As MSForms.TextBox
    Dim i%
    On Error Resume Next
    With Sheets("Productos")
        rw = .Range("A2:A50000").Find(lista, LookAt:=xlWhole).Row 'ANTES B5
        v = Array(txtCod, txtProd, txtProve, txtFactu, DTPicker1, txtUbic, txtObser)
        For i = 0 To UBound(v)
            Set txt = v(i)
            txt.Text = .Cells(rw, i + 1)
            Set txt = Nothing
        Next
    End With
    Buscar.SetFocus
    txtCod.Enabled = False
End Sub

esto con el fin de editar esos datos de esa linea. En el form cambio un  TextBox por un DTPicker para fecha, cuando hago click en una linea del ListBox, la fecha que está en la celda que corresponde al DTPicker no entra en el DTPicker, si no que el DTPicker queda con la fecha actual

Quiero que al dar click en una linea del ListBox, la fecha de la celda entre al DTPicker para poder editar la fecha

Busque por la WEB pero...

1 respuesta

Respuesta
2

Estás declarando esto:

Dim txt As MSForms.TextBox

Luego quieres meter un control DTPicker en un control Textbox:

Set txt = v(i)

La solución sería así:

Private Sub lista_Click() 'LISTBOX
    Dim v   As Variant
    Dim txt As MSForms.TextBox
    Dim i%
   ' On Error Resume Next
    With Sheets("Productos")
        Set b = .Range("A2:A50000").Find(lista.Value, LookAt:=xlWhole, LookIn:=xlValues) '.Row 'ANTES B5
        If Not b Is Nothing Then
            v = Array(txtCod, txtProd, txtProve, txtFactu, DTPicker1, txtUbic, txtObser)
            For i = 0 To UBound(v)
                If i = 4 Then
                    DTPicker1 = .Cells(b.Row, i + 1)
                Else
                    Set txt = v(i)
                    txt.Text = .Cells(b.Row, i + 1)
                    Set txt = Nothing
                End If
            Next
        End If
    End With
    Buscar.SetFocus
    txtCod.Enabled = False
End Sub

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Hola Dante, alegre de saludarte

De lo solicitado si funciona pero me inserta la fecha en la hoja como numero (42627) a pesar de que la celdas tienen el formato fecha

Lo que hace la macro es pasar la fecha de la celda al DTPicker.

Lo que ahora quieres es pasar la fecha hacia a la celda, supongo que eso es otro código que no pusiste en la pregunta. Valora esta respuesta y crea la pregunta correspondiente.

Si, ok, pero luego la fecha de la celda este en el DTPicker, la edito, es decir cambio de fecha y luego del DTPicker hacia la misma celda.

Editar la fecha además de l oque hace la macro "Edicion"

Gracias dante por responder. SI hay que abrir nueva pregunta, solo dilo y más pronto que tarde la abriré

Sí, valora esta respuesta y crea una nueva.

La macro valida los datos después de editados

No sé a qué te refieres.

El problema inicial es que estabas intentando poner un objeto DTPicker en un objeto Textbox, eso ya lo corregí, si requieres otra ayuda, crea la pregunta correspondiente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas