Saltar al contenido

Recommended Posts

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

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

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

Conéctate para comentar

Podrás dejar un comentario después de conectarte



Conéctate ahora
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.