Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como Exportar Desde Excel y Guardar Archivo TXT Separado por Coma


.

En este post se muestra como Exportar Datos de Excel a un Archivo TXT Delimitado o Separado por Coma, la macro de Excel recorre todos los datos de la hoja de Excel guardándolos en un archivo TXT.

En el link encontrarás un playlist con muchos ejemplos sobre como Importar y Exportar de Excel a TXT, sugiero si estás programando algo que requiera trabajar con TXT, visites el link.

Recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  
Suscribe a nuestro canal para que YouTube te avise cuando se suba nuevo contenido al canal, en el vídeo verás la macro en acción, encontrarás una explicación gráfica y detallada del ejemplo que se muestra en este post.


if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}

 
La macro de que Exporta de Excel a TXT Delimitado por Coma se ejecuta al presionar el botón que se encuentra en la hoja de Excel el ejemplo que se puede descargar desde el final del link.

La macro en primer lugar crear el nombre del archivo TXT, que será el mismo nombre del archivo con la macro, pero por supuesto con extensión TXT, se usan los siguientes códigos:

nom = ActiveWorkbook.Name

pto = InStr(nom, «.»)

nomarch = Left(nom, pto – 1)

myfile = ThisWorkbook.Path & «» & nomarch & «.txt»

Con la siguiente variable se determinar el carácter que se usará para separar o delimitar los registros en el archivo TXT, es decir sirve para establecer donde inicia y termina cada cadena de caracteres, que en este caso esta dado por lo escrito en cada celda de Excel.

cara = «,» ‘caracter para completar el espacio

Luego se debe realizar un bucle en el rango donde se encuentran los datos, desde la primer a la última fila con datos, para ello se debe determinar la última fila con datos y luego hacer un bucle for … next desde la primer a la pultima fila con datos, ello se hace con la siguiente línea de código:

uf = a.Range(«A» & Rows.Count).End(xlUp).Row

⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛

Quizá sea de utilidad también


Como Exportar Desde Excel y Guardar TXT Texto Delimitado por Ancho Fijo

Como Importar un Archivo TXT Separado por Coma

Como Exportar Desde Excel a TXT Texto Delimitado Ancho Fijo Rellenando Campo Con Ceros

Seguidamente se crea el archivo TXT  con el nombre determinado al principio de la macro, se hace el bucle desde la primer a la última fila, y se caga en las variables C1 a C7 el valor de las celdas de la columna A y fila que recorre el bucle en ese momento, columna B y fila que recorrer el bucle en ese momento y así con todas las columnas, usa los siguientes códigos:

Open myfile For Output As #1

For i = 2 To uf

C1 = Cells(i, 1)

C2 = Cells(i, 2)

C3 = Cells(i, 3)

C4 = Cells(i, 4)

C5 = Cells(i, 5)

C6 = Cells(i, 6)

C7 = Cells(i, 7)

Por último los que se hace es concatenar todas las variables que contienen los datos de las respectivas celdas, con el caracteres utilizado para separar los datos exportando al archivo TXT, se usa el siguiente código.

Print #1, C1 & cara & C2 & cara & C3 & cara & C4 & cara & C5 & cara & C6 & cara & C7


En el ejemplo Como Exportar Desde Excel y Guardar Archivo TXT Delimitado por Coma se puede descargar en forma GRATUITA desde el final, a continuación el código completo que se encuentre en el ejemplo.

Código que se inserta en un módulo

‘**************https://macrosenexcel.com  **** https://youtube.com/programarexcel*********

#If VBA7 And Win64 Then

‘Si es de 64 bits

Public Declare PtrSafe Function ShellExecute Lib «shell32.dll» Alias «ShellExecuteA» (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr

Public Declare PtrSafe Function FindWindow Lib «USER32» Alias «FindWindowA» (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr

Public Declare PtrSafe Function GetWindowLongPtr Lib «USER32» Alias «GetWindowLongPtrA» (ByVal hwnd As LongPtr, ByVal nIndex As Long) As LongPtr

Public Declare PtrSafe Function SetWindowLongPtr Lib «USER32» Alias «SetWindowLongPtrA» (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr

Public Declare PtrSafe Function DrawMenuBar Lib «USER32» (ByVal hwnd As Long) As LongPtr

Public Declare PtrSafe Function RegOpenKeyA Lib «advapire32.dll» (ByVal hKey As LongPtr, ByVal lpSubKey As String, phkResult As LongPtr) As LongPtr

#Else

‘Si es de 32 bits

Public Declare Function ShellExecute Lib «shell32.dll» Alias «ShellExecuteA» (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Public Declare Function FindWindow Lib «USER32» Alias «FindWindowA» (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Declare Function GetWindowLong Lib «USER32» Alias «GetWindowLongA» (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Public Declare Function SetWindowLong Lib «USER32» Alias «SetWindowLongA» (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public Declare Function DrawMenuBar Lib «USER32» (ByVal hwnd As Long) As Long

Public Declare Function RegOpenKeyA Lib «advapire32.dll» (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long

#End If


Sub ExportaTXTDelimitadoPorComa()

Dim i As Double

On Error Resume Next

Set a = Sheets(«Hoja1»)

nom = ActiveWorkbook.Name

pto = InStr(nom, «.»)

nomarch = Left(nom, pto – 1)

myfile = ThisWorkbook.Path & «» & nomarch & «.txt»

cara = «,» ‘caracter para completar el espacio

uf = a.Range(«A» & Rows.Count).End(xlUp).Row


Open myfile For Output As #1

For i = 2 To uf

C1 = Cells(i, 1)

C2 = Cells(i, 2)

C3 = Cells(i, 3)

C4 = Cells(i, 4)

C5 = Cells(i, 5)

C6 = Cells(i, 6)

C7 = Cells(i, 7)

Print #1, C1 & cara & C2 & cara & C3 & cara & C4 & cara & C5 & cara & C6 & cara & C7

Next i

Close

MsgBox («El archivo txt se creo con éxito»), vbInformation, «AVISO»

End Sub

⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends