Excel: Macro para ejecutar Texto en columnas

Espero que anden bien. Disculpen la molestia, pero estoy intentando dar detalles a una BD que funciona como estadística. Mi problema es que, como a muchos les ha pasado, intento enviar una fecha a una hoja de Excel y lo hace sin reconocerla como tal. En mi formulario tengo un botón que inserta la fecha actual y aun así, no lo reconoce. También la columna esta configurada con formato Fecha.

Solo tengo este código para el textbox en cuestión:

Private Sub txt_fechadevacunacion_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With Me.txt_fechadevacunacion
.Value = Format(.Value, "dd/mm/yyyy")
End With
End Sub

Como el titulo lo indica, solo consigo hacerlo con el botón de "Texto en columnas", donde le doy formato como DMA. ¿Existe una macro que pueda realizar esto o podrían decirme donde esta mi error?

2 respuestas

Respuesta
1

No es necesario aplicar "Texto a columnas", y ojo, has mencionado tu problema pero no has puesto la raíz de ello: ¿Cómo envías el valor a la hoja? Prueba algo así:

Range("A1") = CDate(txt_fechadevacunacion)

Solo adáptalo a tus necesidades

Comentas

Abraham Valencia

Buenas Abraham. Gracias por su tiempo. El valor lo envió de esta manera:
ActiveSheet.Cells(6, 1) = txt_fechadevacunacion

¿Dónde debería colocar el código que me ha pasado? Tengo un botón llamado "Registrar", que es el encargado de llevar todos los textbox a mi hoja de excel. Gracias de nuevo y saludos.

Colócalo así:

ActiveSheet.Cells(6, 1) = CDate(txt_fechadevacunacion)

Salu2

Abraham Valencia

¡Gracias! Excelente Abraham. Muchas gracias por su tiempo. Creo que ya es todo por ahora. Me ha servido de mucho. Saludos

Excelente, un abrazo

Abraham Valencia

Respuesta
1

Te paso el codigo para el Text to column desde VBA

    Columns("D:D").Select
    Selection.TextToColumns Destination:=Range("D1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 4), TrailingMinusNumbers:=True '=Array(1,4) DMY - (1,3) MDY 

´Por favor recuerda valorar la respuesta.

Slds

Juan

Buenas estimado Juan. He probado con su código en un botón que lo ejecute. Es correcto así? Me sale un error en tiempo de ejecución. He reemplazado "D:D" por "A:A" (aquí tengo mis fechas) y "D1" por "A5", que es donde comienzan mis fechas (en las celdas anteriores tengo texto). Gracias por su tiempo.

Si arriba tienes texto deberás seleccionar solo el rango que quieres y colocar los resultados en la primera fila de ese rango.

Si quieres enviame el archivo al mail [email protected], lo testeo y te devuelvo la macro testeada en tu file.

Slds

Juan

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas