Para DAM Crear un archivo TXT separado por comas a partir de una tabla en excel

Hola DAM

Tengo en excel una hoja llamada "AC" en la cual en la fila 1 tengo los nombres de cada columna y los datos comienzan a partir de la fila 2 en adelante.

La idea es una macro que me pueda generar un archivo txt a partir de esos datos, separados por comas.

Lo que necesito es la siguiente estructura en el archivo TXT

"A2","B2","C2","D2","E2","F2",10,13,"I2",,,,"J2","K2","L2","M2"

"A3","B3","C3","D3","E3","F3",10,13,"I3",,,,"J3","K3","L3","M3"

"A4","B4","C4","D4","E4","F4",10,13,"I4",,,,"J4","K4","L4","M4"

Y así sucesivamente en cada línea del txt hasta que se acaben los datos de la tabla

El numero "10" el numero "13" y las cuatro comas debe salir así, no es que me halla equivocado.

Espero me hallas podido entender.

Gracias

1 Respuesta

Respuesta
1

Te anexo la macro

Sub CrearTxt()
'Por.Dante Amor
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("AC")
    Set l2 = Workbooks.Add
    Set h2 = l2.ActiveSheet
    '
    u = h1.UsedRange.Rows(h1.UsedRange.Rows.Count).Row
    h1.Range("B2:M" & u).Copy h2.Range("A1")
    h2.[F1] = "10"
    h2.[G1] = "13"
    h2.Range("F1:G1").AutoFill Destination:=Range("F1:G" & u - 1)
    h2.Columns("I:K").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    '
    ruta = l1.Path & "\"
    nombre = "ac"
    l2.SaveAs Filename:=ruta & nombre & ".csv", FileFormat:=xlCSV
    l2.Close False
    MsgBox "Archivo TXT creado", vbInformation
End Sub

Como no me pusiste cómo debe llamarse el nuevo archivo le puse el nombre de la hoja "AC", el archivo se guarda en la misma carpeta en donde tienes el archivo con la macro.

Prueba y me comentas

Saludos. Dante Amor

Hola DAM

No se si estoy se pueda arreglar, tu me dirás, es que me creo un archivo CSV de extensión de excel pero yo quería era que me creara un archivo TXT de bloc de notas no se si eso lo puedas hacer.

Por otro lado no se si se le pueda decir que ejecute la macro hasta el ultimo valor de la columna B por ejemplo es que me ejecuto la macro hasta la fila 600 y pues solo tenia 10 filas con valores entonces las demás filas me quedaron así:

,,,,, 10,13,,,,,,,

,,,,,, 10,13,,,,,,,

,,,,,, 10,13,,,,,,,,

,,,,, 10,13,,,,,,,,

,,,,, 10,13,,,,,,,

,,,,,, 10,13,,,,,,,

,,,,,, 10,13,,,,,,,

Espero tu respuesta

Te anexo la macro con los cambios

Sub CrearTxt()
'Por.Dante Amor
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("AC")
    Set l2 = Workbooks.Add
    Set h2 = l2.ActiveSheet
    '
    u = h1.Range("B" & Rows.Count).End(xlUp).Row
    h1.Range("B2:M" & u).Copy h2.Range("A1")
    h2.[F1] = "10"
    h2.[G1] = "13"
    h2.Range("F1:G1").AutoFill Destination:=Range("F1:G" & u - 1)
    h2.Columns("J:L").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    '
    ruta = l1.Path & "\"
    nombre = "ac"
    l2.SaveAs Filename:=ruta & nombre & ".txt", FileFormat:=xlCSV
    '
    l2.Close
    MsgBox "Archivo TXT creado", vbInformation
End Sub

Saludos.Dante Amor

No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas