PROGRAMAR EN VBA MACROS PARA EXCEL

Como Exportar Desde Excel y Guardar Archivo TXT Separado por Tabulaciones






En el ejemplo que a continuación se detalla, se muestra como se puede Exportar de Excel a TXT con Campos Delimitados por Tabulaciones, la macro de Excel creará un archivo TXT, recorrerá todas la filas Excel exportando los datos al fichero TXT de formato plano.

En el siguiente playlist encontrarás varios ejemplos de macros con el tema de exportar e importar de Excel a TXT y TXT a Excel.

Si te estás iniciando en la operación de Excel o requieres afirmar conocimientos, 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 encontrarás una explicación gráfica y detallada del ejemplo que se muestra en este post.








 


Al descargar el fichero se puede observar un botón que al presionarlo ejecuta la macro exportando todos los datos contenidos en la Hoja1 a un archivo TXT creado por macro de Excel.

En primer lugar la macro de Excel determina cual es el nombre del archivo actual, es decir el archivo que contiene la macro, luego utiliza ese nombre para crear un Fichero TXT cuyo nombre es igual al del archivo con la macro, pero 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" 


Luego la macro de Excel carga en la variable "cara" cual va a ser el caracter delimitador de los datos que va a contener el TXT.

También se determinar la última fila con datos para poder realizar un bucle desde el dato inicial hasta el último dato de la base de datos, se usa la siguiente codificación:

cara = vbTab 'tabulación para separar o delimitar caracteres

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

⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
Quizá sea de utilidad también

Como crear una factura con excel, guardarla y enviarla por mail automáticamente


Como enviar mail con archivo Excel y PDF mediante Outlook con Excel

Como hacer un link o hiperlink a google maps con Excel

La macro en forma posterior crea el Archivo TXT para ello se usa el siguiente código.

Open myfile For Output As #1

Luego inicia un bucle entre la primer y última fila con datos cargando en cada unas de las variables el dato correspondiente a la fila del bucle y la columna 1 a 7 que es donde está la base de datos, los códigos usados son:

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 se concatenan los datos y se envía al TXT, con el siguiente código:

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

El ejemplo Como Exportar Desde Excel a TXT Delimitado por Tabulaciones, se puede descarga desde el link del final y a continuación se podrá observar toda la codificación del ejemplo de macro presentado en este post.


Código que se inserta en un módulo

'**************https://programarexcel.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 ExportaTXTDelimitadoTabulaciones()

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 = vbTab 'tabulación para separar o delimitar caracteres

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