Necesito una macro en un botón que me genere un archivo txt delimitado por comas, desde excel

Tengo un archivo con unos datos y necesito que desde un botón me lo convierta en un archivo txt separado con comas adicional me nombre el archivo txt con el nombre que tengo en una detarminada Celda.

1 respuesta

Respuesta
1

Te anexo la macro. Sigue las siguientes indicaciones:

  • Cambia "Hoja2" por el nombre de hoja que quieras guardar como txt
  • Cambia "B3" por la celda determinada. Si la celda es una fecha entonces cambia esta línea
    arch = h.Range("B3")
  • Por esta
arch = Format(h. Range("B3"), "dd-mm-yyyy")
  • Prueba la macro y revisa el archivo; si el archivo no se generó con comas, entonces cambia esta línea Local:=False por Local:=True

La macro

Sub Guardar_Txt_Comas()
'
' Por.Dante Amor
'
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set h = Sheets("Hoja2")
    ruta = ThisWorkbook.Path & "\"
    arch = Format(h.Range("B3"), "dd-mm-yyyy")
    h.Copy
    ActiveWorkbook.SaveAs _
        Filename:=ruta & arch & ".txt", _
        FileFormat:=xlCSV, CreateBackup:=False, _
        Local:=False
    ActiveWorkbook.Close
    MsgBox "Archivo creado"
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Me sale un error

    ActiveWorkbook.SaveAs _
        Filename:=ruta & arch & ".txt", _
        FileFormat:=xlCSV, CreateBackup:=False, _
        Local:=False

Muchas gracias Dante, ya me función requiero eliminarle las dos primeras filas para que solo me genere la información, como lo puedo hacer?

¿Eliminar las 2 primeras filas de la hoja?

Entonces así:

Sub Guardar_Txt_Comas()
'
' Por.Dante Amor
'
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set h = Sheets("Hoja2")
    ruta = ThisWorkbook.Path & "\"
    arch = Format(h.Range("B3"), "dd-mm-yyyy")
    h.Copy
    ActiveSheet.Rows("1:2").Delete
    ActiveWorkbook.SaveAs _
        Filename:=ruta & arch & ".txt", _
        FileFormat:=xlCSV, CreateBackup:=False, _
        Local:=False
    ActiveWorkbook.Close
    MsgBox "Archivo creado"
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Mil Gracias Eres el mejor como hago para que siempre mis preguntas te lleguen a ti?

Primero, al final de mi respuesta tienes 2 opciones para valorar la respuesta: "Votar" y "Excelente", si pusiste votar significa que tienes alguna duda, si no es así, apreciaría que cambiaras tu valoración.

Después, cuando crees una pregunta, en el desarrollo de la pregunta escribe "Para Dante Amor"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas