PROGRAMAR EN VBA MACROS PARA EXCEL: Como Exportar Desde Excel y Guardar Archivo TXT Separado por Punto y Coma

Como Exportar Desde Excel y Guardar Archivo TXT Separado por Punto y Coma






En este ejemplo de macro se muestra Como Exportar de Excel a un Archivo TXT Delimitando los Campos con Punto y Coma, la macro de Excel al exportar al fichero TXT separa los campos exportados con punto y coma; en post siguientes se mostrará como delimitar o separar campos con coma, tabulación, barra, suscribe a nuestro canal de YouTube para que avise cuando se suba nuevo contenido.

Si estás trabajando con listbox quizás quieras aprender más sobre este objeto de VBA para Excel, en el link encontrarás muchos ejemplos que serán de utilidad relacionados con listbox de Excel.

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.






 


La macro contenida en el ejemplo que se puede descargar desde el link del final sin ninguna restricción, permite crear un fichero TXT con los datos de Excel o dicho de otra forma Exportar los datos de Excel al un archivo TXT.

Presionando el botón que se encuentra en la hoja de Excel se procede a crear el TXT, la macro en un primero momento determinar el nombre del archivo con la macro, ya que en el ejemplo el TXT creado llevará el mismo nombre que el fichero con la macro, pero con la extensión TXT, lo mencionado se hace con los siguientes códigos:

nom = ActiveWorkbook.Name
pto = InStr(nom, ".")
nomarch = Left(nom, pto - 1)
myfile = ThisWorkbook.Path & "\" & nomarch & ".txt"


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

Como utilizar el método Find para buscar datos en Excel


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

Como hacer un link o hiperlink a google maps con Excel

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



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

Luego en la variable "cara" se establece el caracter que se usará para separar o delimitar los datos, se determina la última fila con datos y se procede hacer un bucle desde la primera fila de Excel que contiene los datos que se requieren exportar a TXT hasta la última fila con datos.

Se cargan en las variables C1 a C7 cual es el valor de la fila que recorrer el bulce en ese momento y la columna A, B, C, D, E, F y G; para exportar se concatenan todos los valores de las columnas con el carácter determinado para delimitar o separar los datos, en este caso es el punto y coma, lo mencionado se hace con los siguientes códigos.

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

Exportado todos los datos se cierra el archivo TXT y sale un mensaje avisando que los datos fueron exportados, terminando la macro llamada Como Exportar Excel y Guardar Arvhivo TXT Delimitado por Punto y Coma, seguidamente se encuentre el código completo y posteriormente el link de descarga.

Código que se inserta en un Módulo de VBA

'**************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 ExportaTXTDelimitadoPorPuntoyComa()
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 = ";" 
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