Saltar al contenido

Macro para generar un archivo csv de

publicado

Hola que tal amigos programadores por favor me podrían ayudar con una macro que me genere un archivo CSV delimitado por comas, la estructura del archivo CSV no deberá llevar encabezado, los datos del archivo CSV serán obtenidos de la hoja “Datos”.

En la columna A: deberá tener la clave clues que se toma de la columna B de la hoja Datos

En la Columna B: el Código (son 230 codigos que van del rango G1:IB1 de la hoja datos)

En la Columna C: el valor almacenado a su correspondiente al código y clues

En la Columna D: el número del mes que se obtendrá de la de la columna E de la hoja Datos

En la Columna E: el año que se tomará de la columna F de la hoja de Datos

 

Son 230 códigos por lo que la macro generará 230 filas por cada clave clues que tenga la hoja Datos

En el archivo anexo una hoja llamada CSV para que vean la estructura que tendrá, el archivo CSV estará delimitado por comas

 

Les agradecería mucho que me ayuden por favor, Dios los bendiga

Exportar datos a csv.xlsx

Featured Replies

publicado
Sub ExportarCSV()
    
    Set hojaDatos = ThisWorkbook.Sheets("Datos")
    Set hojaCSV = ThisWorkbook.Sheets("CSV")
    
    ultimaFila = hojaDatos.Cells(hojaDatos.Rows.Count, "B").End(xlUp).Row

    Dim rangoCodigos As Range
    Set rangoCodigos = hojaDatos.Range("G1:IB1")

    rutaArchivoCSV = ThisWorkbook.Path & "\"
    nombreArchivoCSV = "archivo.csv"

    archivoCSV = FreeFile
    Open rutaArchivoCSV & nombreArchivoCSV For Output As archivoCSV

    For i = 2 To ultimaFila
        clave = hojaDatos.Cells(i, 2).Value
        mes = hojaDatos.Cells(i, 5).Value
        año = hojaDatos.Cells(i, 6).Value
        
        For Each celda In rangoCodigos
            codigo = celda.Value
            valor = hojaDatos.Cells(i, celda.Column).Value
            If Not IsEmpty(codigo) Then
                If IsNumeric(valor) Then
                    valor = CDbl(valor)
                End If
                Print #archivoCSV, clave & "," & codigo & "," & valor & "," & mes & "," & año
            End If
        Next celda
    Next i
    Close archivoCSV
    
    MsgBox "Se ha generado el archivo CSV correctamente.", vbInformation
End Sub

 

Exportar datos a csv.xlsm

  • 2 weeks later...
publicado
  • Autor

Mil gracias por tu gran ayuda, Dios te siga bendiciendo con mas conocimiento

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.