.
Para ver más tutoriales sobre exportación importación de datos de Excel a TXT debes seguir el siguiente 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.
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 crea un archivo TXT que lleva el mismo nombre que el archivo con la macro, pero con extensión TXT, eso se crea con los códigos que se muestran a continuación:
Luego asignamos a la variable cara cual va a ser el caracter que delimitará los registros, en este ejemplo el caracter para completar los espacios faltantes para llegar al largo de cada campo, es un espacio en blanco, se usa el siguiente código:
⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
Quizá sea de utilidad también
Como cargar listbox de más de diez columnas
Como enviar mail con archivo Excel y PDF mediante Outlook con Excel
Como hacer un link o hiperlink a google maps con Excel
⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
Luego la macro realiza un bucle entre la primer y la última fila con datos, cuyas filas de Excel va a ir recorriendo y exportando a TXT.
Para agregar los espacios en blanco necesarios para que se cumpla el largo del campo, se hace una resta entre el largo establecido del campo menos el largo de los registros, agregando el caracter en blanco a los espacios faltantes para completar el largo del campo.
C1 = String(larC1 – Len(Cells(i, 1)), cara) & Cells(i, 1)
Luego de determinar cada registro se concatena todos los registros de la columnas y fila que recorre el bucle en cada momentos, luego exporta dicho registro a TXT. Lo mencionado se hace con el siguiente código:
Print #1, C1 & C2 & C3 & C4 & C5 & C6 & C7
El ejemplo Como Exportar Desde Excel a TXT con ancho fijo, se puede descargar desde el link del final, a continuación la codificación completa.
Código que se inserta en un Formulario de Excel
‘**************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 ExportaTXTAnchoFijoRellenoEspacios()
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»
‘largo de campos
larC1 = 5
larC2 = 10
larC3 = 50
larC4 = 50
larC5 = 15
larC6 = 10
larC7 = 15
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 = String(larC1 – Len(Cells(i, 1)), cara) & Cells(i, 1)
C2 = String(larC2 – Len(Cells(i, 2)), cara) & Cells(i, 2)
C3 = Cells(i, 3) & String(larC3 – Len(Cells(i, 3)), cara)
C4 = Cells(i, 4) & String(larC4 – Len(Cells(i, 4)), cara)
C5 = String(larC5 – Len(Cells(i, 5)), cara) & Cells(i, 5)
C6 = String(larC6 – Len(Cells(i, 6)), cara) & Cells(i, 6)
C7 = String(larC7 – Len(Cells(i, 7)), cara) & Cells(i, 7)
Print #1, C1 & C2 & C3 & C4 & C5 & C6 & C7
Next i
Close
MsgBox («El archivo txt se creo con éxito»), vbInformation, «AVISO»
End Sub
#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 ExportaTXTAnchoFijoRellenoEspacios()
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»
‘largo de campos
larC1 = 5
larC2 = 10
larC3 = 50
larC4 = 50
larC5 = 15
larC6 = 10
larC7 = 15
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 = String(larC1 – Len(Cells(i, 1)), cara) & Cells(i, 1)
C2 = String(larC2 – Len(Cells(i, 2)), cara) & Cells(i, 2)
C3 = Cells(i, 3) & String(larC3 – Len(Cells(i, 3)), cara)
C4 = Cells(i, 4) & String(larC4 – Len(Cells(i, 4)), cara)
C5 = String(larC5 – Len(Cells(i, 5)), cara) & Cells(i, 5)
C6 = String(larC6 – Len(Cells(i, 6)), cara) & Cells(i, 6)
C7 = String(larC7 – Len(Cells(i, 7)), cara) & Cells(i, 7)
Print #1, C1 & C2 & C3 & C4 & C5 & C6 & C7
Next i
Close
MsgBox («El archivo txt se creo con éxito»), vbInformation, «AVISO»
End Sub
⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
.
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