Guardar rango de datos de mi hoja de excel en formato .txt

Si me pueden ayudar con el siguiente trabajo:

Manejo una hoja de excel con encabezados NIT-COD-MONTO-FACTURA-FECHA, las cuales en la parte de abajo o sea desde la fila A2 ingreso los datos correspondientes para cada encabezado, después tengo que copiar a un nuevo libro solo los datos y ya no los encabezados, ya el nuevo libro que tiene solo los datos tengo que guardarlos con tipo CSV (delimitado por comas) (.*csv) con el nombre del mes a los que corresponde, una vez guardados tengo que cambiar el formato .csv a .txt, hay alguna manera de que se pueda pasar directamente mediante una macro solo el rango de A2 : E50 donde están los datos y guardarlos como .txt?

1 respuesta

Respuesta
3

Prueba con la siguiente macro

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 Asignar macro / Selecciona: pasaratxt
9. Aceptar.
10. Para ejecutarla dale click a la imagen.

Sub pasaratxt()
'Por.DAM
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set h1 = ActiveSheet
    mes = Month(Range("E2"))
    ruta = ThisWorkbook.Path & "\"
    Set l2 = Workbooks.Add
        Set h2 = l2.ActiveSheet
            h1.Range("A2:E50").Copy h2.Range("A1")
            h2.SaveAs Filename:=ruta & mes & ".txt", _
                FileFormat:=xlCSV, _
                CreateBackup:=False
            ActiveWorkbook.Close
        Set h2 = Nothing
    Set l2 = Nothing
Set h1 = Nothing
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Saludos.DAM
Si es lo que necesitas.

Estimado Dan esta buenísima la macro, pero un favor este archivo lo creo para mandar a una base de datos externa y tengo que mandarla como .txt delimitado los datos por | este palito (disculpa la expresión pero no recuerdo como se llama en este momento) y bueno el archivo que lo guardamos con tu macro lo separa con una coma ( , ) como seria para guardarlos datos separados con ese carácter | ?

gracias

saludos

Jesús

Eso no venía en tu primera pregunta. Pero revisa la siguiente macro.

A mí me funciona, me deja el archivo como txt y separados por pipe "|"

Sub pasaratxt()
'Por.DAM
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set h1 = ActiveSheet
    mes = Month(Range("E2"))
    ruta = ThisWorkbook.Path & "\"
    Set l2 = Workbooks.Add
        Set h2 = l2.ActiveSheet
            h1.Range("A2:E50").Copy h2.Range("A1")
            h2.SaveAs Filename:=ruta & mes & ".txt", _
                FileFormat:=xlCSV, _
                CreateBackup:=False
            ActiveWorkbook.Close
            Workbooks.Open ruta & mes & ".txt"
            Cells.Replace What:=",", Replacement:="|"
            ActiveWorkbook.Save
            ActiveWindow.Close
        Set h2 = Nothing
    Set l2 = Nothing
Set h1 = Nothing
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Saludos.DAM

No olvides finalizar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas