Abrir archivo txt modificarlo y ¿Como guardarlo con el mismo nombre pero con extensión csv?

1. Abro un archivo txt con excel,

2. Con una macro lo modifico, agrego datos, doy formato

3. Requiero guardarlo con el mismo nombre y en la misma dirección en formato csv con la misma macro, para no hacerlo de manera manual.

1 Respuesta

Respuesta
2

Supongo que ya tienes la macro para modificar tu archivo.

Entonces utiliza lo siguiente para abrir el txt y después para guardar como csv:

Sub Abrir_Txt()
'Por Dante Amor
    'ABRIR txt
    ruta = ThisWorkbook.Path & "\"
    arch = "algo1"
    Workbooks.OpenText Filename:=ruta & arch & ".txt", Origin:=xlMSDOS, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
        TrailingMinusNumbers:=True
    '
    'MACRO Modificar, agregar, formatear
    'Inicio tu macro
    '
    'Fin tu mazro
    '
    'GUARDAR como csv
    ActiveWorkbook.SaveAs Filename:=ruta & arch & ".csv", _
        FileFormat:=xlCSV, CreateBackup:=False
    ActiveWorkbook.Close False
    '
    MsgBox "Fin"
End Sub

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

Dante en mi caso yo me voy a una carpeta , le doy botón derecho y le doy abrir con excel aun archivo, luego  control + w y actúa una macro limpiando y modificando y lo que requiero primero es que se guarde ese archivo en la misma dirección de donde lo abrí pero como formato csv.

ya después quiero abrir todos los archivos de una carpeta, codificarlos y guardarlos en esa misma carpeta pero eso ya sera en otro tema

Ya solo me falta guardarlo en la misma ruta de donde lo abrí:

'título a las celdas de fila 1
Range("A1") = "Lon"
Range("B1") = "Lat"
Range("C1") = "Tmax"
Range("D1") = "Edo"
Range("E1") = "Estacion"
Range("F1") = "Fecha"
'obtener la parte de la fecha
libro = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 5) 'se le quita la extensión
fechax = Right(libro, 5)
fechaCol = Mid(fechax, 3, 2) & "/" & Left(fechax, 2) & "/20" & Right(fechax, 1) & "2"
'se obtiene la última fila con datos según col A (ajustar)
finx = Range("A" & Rows.Count).End(xlUp).Row
'se coloca la fecha en col F controlando posible error de fecha invalida
'On Error Resume Next
Range("F2:F" & finx) = (fechaCol)
'On Error GoTo 0
'GUARDAR como csv
ruta = ThisWorkbook.Path & "\"
ActiveWorkbook.SaveAs Filename:=ruta & libro & ".csv", _
FileFormat:=xlCSV, CreateBackup:=False

Con esto debería guardarlo en la misma carpeta

ruta = ThisWorkbook.Path & "\"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas