Crear ficheros .csv a partir de valores de columnas de una tabla en Excel.

Tengo que generar varios ficheros .csv con una estructura determinada segun valor de la columna Record#.

La tabla en Excel tiene las siguientes columnas:

Count     Record#    Date

19950 1 20180406

1339 2 20180406

10928 3 20180406

681 4 20180406

En este ejemplo tengo que generar 4 ficheros .csv que tengan cada uno el siguiente nombre y estructura.

El nombre del fichero a generar esta formado por:

COPR_M_(Date)_(Record#).csv

Ej: COPR_M_20180406_1.csv

    COPR_M_20180406_2.csv  

    COPR_M_20180406_3. Csv y asi por cada fila de la tabla se genera un .csv

Y lo que contiene el fichero generado son dos filas unicamente con la siguiente informacion.

VENDOR|FILENAME|DATE_CREATED|RECORD_COUNT|FILE_TYPE|FILE_CATEGORY  (Fila 1 Es siiempre asi)

COPR|CAMP_INB_COPR_H_20180406_ALL_1.csv|2018-04-06 00:00:00|119950|CSV|HISTORY (Fila 2 variable segun:

FILENAME es fijo concatenando la fecha de la columna DATE

DATE_CREATED es la fecha de la columna DATE en el formato 2018-04-06 00:00:00

RECORD_COUNT es la cantidad de la column COUNT.

1 Respuesta

Respuesta
2

Envíame tu archivo de excel con 3 ejemplos.

También me envías los 3 archivos csv conteniendo los 3 ejemplos del archivo de excel.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Aleida Cervino

Te anexo la macro

Sub Crear_Csv()
'Por Dante Amor
    Set h1 = ActiveSheet
    'Const separador As String = "|"
    ruta = ThisWorkbook.Path & "\"
    If Right(ruta, 1) <> "\" Then ruta = ruta & "\"
    '
    n = 1
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        '
        fecha1 = Format(h1.Cells(i, "D").Value, "yyyymmdd")
        fecha2 = Format(h1.Cells(i, "D").Value, "yyyy-mm-dd hh:mm:ss")
        nombre = "CAMP_INB_COPR_M_" & fecha1 & "_ALL_" & n
        '
        nFileNum = FreeFile
        Open ruta & nombre & ".csv" For Output As #nFileNum
        cadena = "VENDOR|FILENAME|DATE_CREATED|RECORD_COUNT|FILE_TYPE|FILE_CATEGORY"
        Print #nFileNum, cadena
        cadena = "COPR|CAMP_INB_COPR_H_" & fecha1 & _
                 "_ALL_" & n & ".csv|" & fecha2 & _
                 "|" & h1.Cells(i, "E").Value & "|CSV|HISTORY"
        Print #nFileNum, cadena
        Close #nFileNum
        n = n + 1
        '
    Next
    MsgBox "Archivos csv creados: " & n - 1, vbInformation, "CREAR CSV"
End Sub


Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: Crear_Csv
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

.

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas