Icono del sitio Desafiando Excel

Convertir selección a TXT o CSV en Excel (macro)

Convertir selección a TXT o CSV en Excel (macro)

¿Cómo podemos convertir automáticamente una selección de rango a un archivo TXT o CSV mediante el uso de macros en Excel?

Las siguientes macros nos permiten ejecutar una macro que realiza una copia de los datos seleccionados y los guarda dentro de un archivo de formato .txt o .csv.

La instrucción a copiar dentro de un nuevo módulo de vba es la siguiente:

 

CONVERTIR SELECCIÓN A TXT EN EXCEL

Sub ExportarSeleccionATXT()

    Dim R As Range
    Dim ruta As String, archivo As String
    Dim fila As Range, celda As Range

    If TypeName(Selection) <> "Range" Then
        MsgBox "Seleccioná un rango antes de ejecutar la macro.", vbExclamation
        Exit Sub
    End If
    
    Set R = Selection

    ruta = ThisWorkbook.Path & "\"
    archivo = ruta & "Exportado_" & Format(Now, "yyyymmdd_hhmmss") & ".txt"

    Open archivo For Output As #1

    For Each fila In R.Rows
        Dim linea As String: linea = ""
        
        For Each celda In fila.Cells
            linea = linea & celda.Value & vbTab
        Next celda
        
        linea = Left(linea, Len(linea) - 1)
        
        Print #1, linea
    Next fila

    Close #1

    MsgBox "TXT creado correctamente:" & vbCrLf & archivo

End Sub

CONVERTIR SELECCIÓN A CSV EN EXCEL

Sub ExportarSeleccionACSV()

    Dim R As Range
    Dim ruta As String, archivo As String
    Dim fila As Range, celda As Range

    If TypeName(Selection) <> "Range" Then
        MsgBox "Seleccioná un rango antes de ejecutar la macro.", vbExclamation
        Exit Sub
    End If
    
    Set R = Selection

    ruta = ThisWorkbook.Path & "\"
    archivo = ruta & "Exportado_" & Format(Now, "yyyymmdd_hhmmss") & ".csv"

    Open archivo For Output As #1

    For Each fila In R.Rows
        Dim linea As String: linea = ""
        
        For Each celda In fila.Cells
            linea = linea & celda.Value & ","
        Next celda
        
        linea = Left(linea, Len(linea) - 1)
        
        Print #1, linea
    Next fila

    Close #1

    MsgBox "CSV creado correctamente:" & vbCrLf & archivo

End Sub

 

Notar que nombramos a las macros «ExportarSeleccionATXT» y «ExportarSeleccionACSV» y que el archivo se generará en el mismo directorio o ruta donde se encuentre el archivo de Excel original.

De esta forma logramos convertitr una selección de datos a TXT o CSV de forma rápida y fácil mediante macros en Excel.

 

Te recomiendo ver el siguiente link con más videos de Macros útiles de Excel AQUÍ.

¿No sabés como instalar esta macro? ¡No te preocupes!  Aquí está la solución:

Salvo aclaración, todas las fórmulas y macros de este sitio están configuradas para aplicarse sobre la celda A1. Algunas fórmulas se encuentran encerradas entre llaves {} debido a que son fórmulas matriciales. Estas llaves no deben introducirse tecleándolas, sino que se generan automáticamente al aceptar la fórmula pulsando Control+Shift+Enter al mismo tiempo. Las fórmulas de este sitio son compatibles con versiones de Microsoft Excel® 2010 o superiores. 

Salir de la versión móvil