Excel - MACRO PARA PASAR DE EXCEL A .TXT

 
Vista:

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por ALEX PEREZ (1 intervención) el 22/06/2017 18:41:04
Buenas tardes estoy intentado crear una macro para pasar datos desde una hoja de excel 2010 a archivo txt.
Hasta ahora lo logre con el siguiente código

1
2
3
4
5
6
7
8
9
Sub Exportarfiletxt()
ruta = "C:\Users\Alex\Desktop\test.txt"
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Open ruta For Output As #1
For i = 1 To lastrow
Print #1, Cells(i, 1).Value; Cells(i, 2).Value
Next i
Close #1
End Sub

Pero solo me funciona si los datos están en la columna A1:B121 , No se como realizar el mismo proceso si los datos se encuentran en desde la celda G8:H128 . (Donde los necesito)

Otra duda es como lograr que el archivo de la opción de "guardar como" hasta ahora solo se guarda en la ruta que le asigne al código.

Sin mas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 3.580
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por Andres Leonardo (1326 intervenciones) el 22/06/2017 21:45:39
Intenta asi.

1
2
3
4
5
6
7
8
9
Sub Exportarfiletxt()
ruta = "C:\Users\Alex\Desktop\test.txt"
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Open ruta For Output As #1
For i = 1 To lastrow
Print #1, Cells(i, 7).Value; Cells(i,8).Value
Next i
Close #1
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JoaoM
Val: 333
Ha disminuido 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por JoaoM (218 intervenciones) el 23/06/2017 23:30:31
Hola Andres.
Que bien he descubierto una facilidad para mi trabajo.
Quiero pedirte si es posible, copiar todas las columnas con datos, en mi ejemplo desde A:G y que el txt presente los datos por columnas tal com oestan en Excel?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.580
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por Andres Leonardo (1326 intervenciones) el 24/06/2017 00:13:30
Pues claro que se puede ...lo que pasa es que deberias recorrer las celdas con un while interno o explicitamente
Adicional a esto deberias darle cierto formato (mer refiero por si las columnas se desajusten..) podrias separarlos pos ; o por pipes
1
2
3
4
5
6
7
8
9
Sub Exportarfiletxt()
ruta = "C:\Users\Alex\Desktop\test.txt"
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Open ruta For Output As #1
For i = 1 To lastrow
Print #1,  Cells(i, 7).Value & "|" & Cells(i,8).Value  ' aqui pondrias desde el A a la G es decir desde 1 hasta el 8
Next i
Close #1
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de JoaoM
Val: 333
Ha disminuido 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por JoaoM (218 intervenciones) el 24/06/2017 02:36:08
Gracias Andres, mui bien,.
Habia tratado con el & " " & pero me mandaba a comer pasto jejejej

Print #1, Cells(i, 1).Value & " " & Cells(i, 2).Value & " " & Cells(i, 3).Value

Me falta resolver lo de columna, es decir, no quedar en el TXT todo seguido, que quede separado como que por columnas para poder ser mas facil la identificacion

ASI QUEDA

Código Prod | Nombre Producto | Cant Existente | Ubicación | Fecha Ingr | Valor Unitario | Observación
alternador | Alternador Ford de bronco | 1 | Estante Patio | 19/6/2017 | 100 | Alternador Ford para Bronco
3s1259anil | Anillo expansivo tipo convertido | 1 | Caja Patio | 10/6/2017 | 250000 | Anillo expansivo tipo convertidor = 8" diametro
anillocomp | Anillos compresor CAT de 1 cilindro | 1 | Caja 2 Patio | 19/6/2017 | 55000 | Anillos para compresor CAT usados bien buenos
9s3068 | Anillos cuadrados para pistón 3304/3306 | 8 | Caja Patio | 10/6/2017 | 65000 | Anillos cuadrados para pistones CAT Motor 3306, 3304,3300
anillosbro | Anillos de bronce tipo converter | 2 | Caja Patio | 10/6/2017 | 100000 | Anillos en bronce tipo convertidor = 2"1/4
43/16anill | Anillos medidas externa 4" y 3/16 | 1 | Caja Patio | 10/6/2017 | 100000 | Anillo tipo convertidor medida externa 4" 3/16
1t1231anil | Anillos sellos metalicos tipo converter | 1 | Caja Patio | 10/6/2017 | 86000 | Anillos sellos tipo convertidor
41/2anillo | Anilo medida externa 4" y media convertidor | 1 | Caja Patio | 10/6/2017 | 100000 | Anillo metalico sellante tipo converter
arandelato | Arandela de bronce de top del arbol levas de D8 | 1 | Caja Patio | 10/6/2017 | 125000 | Arandela de top para arbol levas de tractor D8 motor 342

y quisiera así como se ve en el archivo txt que subo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.105
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por Antoni Masana (1415 intervenciones) el 24/06/2017 23:05:07
Yo lo haría así:

1
2
3
4
5
6
7
Print #1, Left$(Cells(i, 1).Value + Space$(10),10) & ";";
Print #1, Left$(Cells(i, 2).Value + Space$(43),43) & ";";
Print #1, Left$(Cells(i, 3).Value + Space$(14),14) & ";";
Print #1, Left$(Cells(i, 4).Value + Space$(13),13) & ";";
Print #1, Left$(Cells(i, 5).Value + Space$(10),10) & ";";
Print #1, Left$(Cells(i, 6).Value + Space$(14),14) & ";";
Print #1,       Cells(i, 7).Value

Y el Resultado seria este:

1
2
3
4
5
6
7
8
9
10
Código Prod;Nombre Producto                            ;Cant Existente;Ubicación    ;Fecha Ingr;Valor Unitario;Observación
alternador ;Alternador Ford de bronco                  ;1             ;Estante Patio;19/6/2017 ;100           ;Alternador Ford para Bronco
3s1259anil ;Anillo expansivo tipo convertido           ;1             ;Caja Patio   ;10/6/2017 ;250000        ;Anillo expansivo tipo convertidor = 8" diametro
anillocomp ;Anillos compresor CAT de 1 cilindro        ;1             ;Caja 2 Patio ;19/6/2017 ;55000         ;Anillos para compresor CAT usados bien buenos
9s3068_cat ;Anillos cuadrados para pistón 3304/3306    ;8             ;Caja Patio   ;10/6/2017 ;65000         ;Anillos cuadrados para pistones CAT Motor 3306, 3304,3300
anillosbro ;Anillos de bronce tipo converter           ;2             ;Caja Patio   ;10/6/2017 ;100000        ;Anillos en bronce tipo convertidor = 2"1/4
43/16anill ;Anillos medidas externa 4"  y 3/16         ;1             ;Caja Patio   ;10/6/2017 ;100000        ;Anillo tipo convertidor medida externa 4" 3/16
1t1231anil ;Anillos sellos metalicos tipo converter    ;1             ;Caja Patio   ;10/6/2017 ;86000         ;Anillos sellos tipo convertidor
41/2anillo ;Anilo medida externa 4" y media convertidor;1             ;Caja Patio   ;10/6/2017 ;100000        ;Anillo metalico sellante tipo converter

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por Nancy Fuentes (1 intervención) el 15/11/2018 04:37:09
Saludos, tengo una situación similar, pero mi batch no respeta el formato de mis celdas al momento de concatenar, es decir, en un columna tengo configurado que sea siempre de 2 digitos numéricos( configuración personalizada de celda 00), y en otra columna que las fechas no usen diagonales que esten ddmmaaaa, entonces al momento de concatenar no me respeta los formatos de celdas... no necesito que me separe con tabulaciones, ni me delimite con espacio... solo que respete esos formatos...

1
2
3
4
5
6
7
8
9
10
Sub GENBACHT3()
ruta = "C:\Users\nancy\Desktop\Carga batch siroc en SUA\test.txt"
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Open ruta For Output As #1
 
For i = 8 To lastrow
Print #1, Cells(i, 1).Value & "" & Cells(i, 2).Value & "" & Cells(i, 3).Value & "" & Cells(i, 4).Value & "" & Cells(i, 5).Value & "" & Cells(i, 6).Value
Next i
Close #1
End Sub


ya encontré como , una disculpa ya había enviado el comentario, y no pude retirarlo, de hecho no se como retirar el comentario o subscripcion…. Saludos y Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por LINDA GOMEZ (1 intervención) el 05/11/2019 07:32:15
Disculpa me puedes mandar la carga bach esta de nancy fuentes al correo: dalin_gomez@hotmail.com

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JoaoM
Val: 333
Ha disminuido 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por JoaoM (218 intervenciones) el 15/11/2018 20:37:33
Hola Antoni. ahora m doy cuenta de tu repuesta y eso que he entradpo acá varias veces y tampoco recibi notificacion de tu respuesta en este tema. Bien, a lo que vengo:

Código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Exportarfiletxt()
 
ruta = "C:\0\test.txt"
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Open ruta For Output As #1
For i = 1 To lastrow
 
'''Print #1, Cells(i, 7).Value & "|" & Cells(i, 8).Value  ' aqui pondrias desde el A a la G es decir desde 1 hasta el 8
 
Print #1, Left$(Cells(i, 1).Value + Space$(10), 10) & ";";
Print #1, Left$(Cells(i, 2).Value + Space$(43), 43) & ";";
Print #1, Left$(Cells(i, 3).Value + Space$(14), 14) & ";";
Print #1, Left$(Cells(i, 4).Value + Space$(13), 13) & ";";
Print #1, Left$(Cells(i, 5).Value + Space$(10), 10) & ";";
Print #1, Left$(Cells(i, 6).Value + Space$(14), 14) & ";";
Print #1, Cells(i, 7).Value
 
Next i
Close #1
End Sub

Los espacios si, ok pero ¿cuando en la celda, el texto es mas largo? hay que hacer cambio en los espacios del codigo creo.
No he probado este punto porque me aparece el error y no sigue para que pueda hacer dicha prueba

Cambie la linea
1
Print #1,  Cells(i, 7).Value & "|" & Cells(i,8).Value  ' aqui pondrias desde el A a la G es decir desde 1 hasta el 8
por las tuyas

Me da error 13 en la columna 3 donde es la cant. Exist. Adjunto imagenes de como esta la data y el codigo
b66ckl
33lp5id
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por Martin (1 intervención) el 18/12/2018 19:32:40
una pregunta yo tengo una macro que me convierte en txt una hoja de excel pero tengo que abrir excel y eso tarda muchisimo , quisiera que se haga el proceso sin tener que abrir el documento de excel.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.105
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por Antoni Masana (1415 intervenciones) el 18/12/2018 20:07:12
Puedes automatizar el proceso es decir no tener que abrir el Excel y al menú Abrir para cargar el libro y tener que ir a macros para ejecutarla y posteriormente cerrarlo todo.

Pero si eres de los que son capaces de leer un libro sin abrirlo me lo explicas por que sera lo mismo con la macro. Yo no lo se hacer y no conozco a nadie capaz de hacerlo.

Ahora bien, si lo que quieres es ejecutarlo desde un BAT para al abrir el libro, ejecute la macro y se cierre sin intervención humana, se puede hacer, yo lo tengo hecho, pero te puedo asegurar que hay que abrir el documento, te guste o no te guste.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por Marco (1 intervención) el 11/01/2019 17:57:09
Y como le hago si cada renglon tiene una longitud diferente ??? Ayuda! , por cierto lo imprime en txt todo seguido sin bajar a siguiente renglon...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por Angel Ruiz (1 intervención) el 17/10/2019 03:05:47
Hola Andres, buenas noches. Implementé tu código y funciona perfecto. Solo que requiero mantener el formato de tres columnas... 2 que personalicé formato ya que son fechas "2019-10-16" y 1 que está en formato hora "20:03". la fecha me la exporta "16/10/2019" y la hora la vuelve número ".025451111" como puedo hacer para mantener el formato que mencionaba primero? De antemano gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.580
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por Andres Leonardo (1326 intervenciones) el 17/10/2019 16:47:04
en las celdas que te da la novedad deberias hacer algo asi

1
Print #1,  format(Cells(i, 7).Value,"HH:MM") & "|" & Format(Cells(i,8).Value,"YYYY-MM-DD"  ' aqui pondrias desde el A a la G es decir desde 1 hasta el 8
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por Jazmín (2 intervenciones) el 01/11/2019 23:42:08
Al correr esta macro solamente me crea el archivo con un numero 21, tengo los datos en las celdas dentro del margen que me marcas. Me podrías ayudar por favor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.580
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por Andres Leonardo (1326 intervenciones) el 05/11/2019 15:17:51
Podrias subir un archivo de ejemplo?=
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por JAZMIN (2 intervenciones) el 05/11/2019 16:10:04
Mi archivo de Excel tiene varias pestañas y solamente donde tengo un mensaje Swift es la que necesito pasar a txt por lo que primero hice una macro que me pegara en un archivo solamente las columnas a ocupar que es A1:A10

Sub Swift202()
'
' Swift202 Macro
'

'
Sheets("TXT").Select
Range("C1:C10").Select
Workbooks.Open Filename:= _
"C:XXX.xlsx"
Cells.Select
Selection.ClearContents
Range("A1").Select
Windows("XXX.xlsm").Activate
Selection.Copy
Windows("YYY.xlsx").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A10").Select
ActiveWorkbook.Save
ActiveWindow.Close
Application.CutCopyMode = False
Sheets("TRANSFER").Select

ruta = "C:\XXX.txt"
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Open ruta For Output As #1
For i = 1 To lastrow
Print #1, Cells(i, 1).Value; Cells(i, 10).Value
Next i
Close #1
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.580
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por Andres Leonardo (1326 intervenciones) el 05/11/2019 17:35:42
'Lo que veo es que escoges el rango A1 lo seleccionas, lo copias y luego pegas ... pero nunca seleccionas de A1 a A10

1
2
3
4
5
6
7
8
9
Selection.ClearContents
Range("A1").Select ' aqui selecciono A1 pero cuando hasta A10 ????
'Range("A1:A10").Select ' Intenta con esta linea descomentala y comenta la anterior
Windows("XXX.xlsm").Activate
Selection.Copy ' copias 
Windows("YYY.xlsx").Activate 'vas a la otra hoja ...
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _   ' pegas....
:=False, Transpose:=False
Range("A10").Select  ' y aca seleccionas A10
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por LUIS ALONSO (1 intervención) el 04/01/2020 20:21:45
mi archivo de excel ya me convierte a txt tal y como lo necesito, pero por actualización de sistema de mi trabajo ahora requiero nombrar el archivo txt como un guardar como

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Sub ExportDB()
 
' This macro saves the active worksheet to a pipe-delimited flat file at c:data.txt
 
Dim SrcRg As Range
 
Dim CurrRow As Range
 
Dim CurrCell As Range
 
Dim CurrTextStr As String
 
Dim ListSep As String
 
Dim DataTextStr As String
 
ListSep = "|"
 
Set SrcRg = ActiveSheet.UsedRange
 
Open "F:\VanTec\Darwin\Facturas\In\DATALUIS.txt" For Output As #1
 
For Each CurrRow In SrcRg.Rows
 
CurrTextStr = ""
 
For Each CurrCell In CurrRow.Cells
 
CurrTextStr = CurrTextStr & CurrCell.Value & ListSep
 
Next
 
While Right(CurrTextStr, 1) = ListSep
 
CurrTextStr = Left(CurrTextStr, Len(CurrTextStr) - 1)
 
Wend
 
'Added next line to put | at end of each line
 
CurrTextStr = CurrTextStr & ListSep
 
Print #1, CurrTextStr
 
Next
 
Close #1
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.580
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por Andres Leonardo (1326 intervenciones) el 06/01/2020 15:10:15
En esta linea pones el nombre como desees
recomiendo mejor usar una variable.

Open "F:\VanTec\Darwin\Facturas\In\DATALUIS.txt" For Output As #1

SAludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por LUIS ALONSO (2 intervenciones) el 27/01/2020 00:37:12
Hola Andres, gracias por responder

así es DATALUIS es donde se como re nombrarlo pero requiero hacerlo desde la interfaz del excel para el usuario común, estoy intentando con un Inputbox pero aun no lo logro :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.580
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por Andres Leonardo (1326 intervenciones) el 29/01/2020 16:26:15
Pues lo optimo seria que pidas algun dato o en su defecto le pongas alguna celda el nombre del archivo otra es usar una referencia llamada common controls de excel para abrir un guardar como ......

SAludos
Andres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

MACRO PARA PASAR DE EXCEL A .TXT

Publicado por LUIS ALONSO (2 intervenciones) el 10/02/2020 03:38:14
Hola Andres,

ya lo logre con un inputbox

gracias por el apoyo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar