Excel - Un archivo txt por cada fila de excel con nombre del txt de una celda

 
Vista:

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Nicolas (1 intervención) el 19/07/2019 15:10:27
filas1

Buen Dia!.
Quisiera, por favor, si me pueden ayudar en lo siguiente:
Convertir cada fila del excel en un archivo txt separado y automaticamente. Cuyos nombres sean el valor de una celda en particular de la Fila.
deberia generar archivos txt por ejemplo: juan.txt, maria.txt, pedro.txt

Mil Gracias!!
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.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Andres Leonardo (1583 intervenciones) el 19/07/2019 15:55:42
Bueno hacerlo no es complicado, lo importante es que necesitas que tenga cada archivo
los campos separados por , o | ??

en todo caso seria esto
Pd: Ese codigo guarda los archivos en la misma ruta del libro de Excel.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Macro1()
'Crea un archivo por cada linea , le pone el nombre de la celda b.txt 
' separador PIPE , longitud variable, 
' Macro1 Macro
' Acceso directo: CTRL+q
    Limite = Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
    For i = 2 To Limite
        Data = Range("A" & i).Value & "|" & Range("B" & i).Value & "|" & Range("C" & i).Value & "|" & Range("D" & i).Value & "|" & Range("E" & i).Value & "|" & Range("F" & i).Value
        Filename = Application.ActiveWorkbook.Path & "\" & Range("B" & i).Value & ".txt"
        Open Filename For Append As #1
            Print #1, Data
        Close #1
    Next i
End Sub


Captura
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
Imágen de perfil de Dirk
Val: 455
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Dirk (166 intervenciones) el 19/07/2019 16:37:03
Hola Andrés un pregunta, por que usar esa instrucción en la linea 6 y no otra un poco mas fácil como CountA( colmuna A ) o un While EsVacia(celda de columnaA)? y por favor no se entienda esto como una crítica sino que dado tu conocimiento me gustaría saber tu criterio, así aprendo a programar mejor....

Salu2
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.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Andres Leonardo (1583 intervenciones) el 19/07/2019 17:53:21
Dirk

Buenos dias,
No claro que no.. y si lo fuera Pues estas en todo tu derecho (al final del analisis te indico por que lo podrias criticar)

primero es lo primero Vaya pedazo de pregunta : "por que usar esa instrucción en la linea 6? ", bueno la verdad que no tengo una respuesta mas sincera que decir que esta fue la que me enseñaron y esa fue la que aprendí a usar para localizar la celda donde YA no hayan datos de esta manera normalmente hago mis macros defino un limite para que mis bucles cumplan de la mejor manera su ciclos y luego ya no haga nada mas .


Ahora técnicamente contestando a tu consulta :

Por que no (usar) otra un poco mas fácil como CountA( colmuna A ) o un While EsVacia(celda de columnaA)? , pues considero que la primera es una función que me devuelve el valor en una sola linea que lo podría usar de igual mandera con el COUNT de la columna A pero nunca lo he usado no lo conozco como aplicarlo y me gustaría claro esta que me indiques si conoces como hacerlo para evaluarlo, mientras que hacer un While pues serian mas sentencias y bajaríamos el rendimiento de la macro, por que si bien en este caso son menos de 10 lineas imaginemos en un libro de 10000 registros recorrer los 10Mil para solo adivinar el limite, ahora nos podríamos poner creativos y evitar hacer esto e ir directo al grano y crear un while y verificar mientras la celda no sea vacia crear el archivos

Mira el codigo:
1
2
3
4
5
6
7
8
9
i = 2
   while  Range("A" & i).Value <> ""
        Data = Range("A" & i).Value & "|" & Range("B" & i).Value & "|" & Range("C" & i).Value & "|" & Range("D" & i).Value & "|" & Range("E" & i).Value & "|" & Range("F" & i).Value
        Filename = Application.ActiveWorkbook.Path & "\" & Range("B" & i).Value & ".txt"
        Open Filename For Append As #1
            Print #1, Data
        Close #1
        i =i  + 1
wend

lo cual vendría a detonar mi teoría de la lógica de programación en las personas y esta dice .. Cada persona tiene una logica completamente diferente como una huella digital y muy, pero muy dificil se parezca a otra en todos los casos , lo importante en este tema son 3 cosas

Que el programa :
Que haga lo que tiene que hacer sin errores
Intentar a medida de lo posible que este optimizada
Y que No siempre la primera versión es la mejor

Por esta razón es cuestionable cualquier macro y siempre hazlo espo siempre ayuda a mejorar, espero que te ayude.

Saludos desde Ecuador
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
Imágen de perfil de alfredo lara
Val: 363
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por alfredo lara (120 intervenciones) el 19/07/2019 22:55:18
Saludos Dirk y Andres

"por que usar esa instrucción en la linea 6?
Muy buena pregunta.
Según se la función CountA cuenta todas la filas que contengan datos, pero si entre ellas hay una celda vacía en tu código podrías tener un error , P ej:

Fila 1 = Pedro
Fila 2 = Maria
Fila 3 =
Fila 4 = Juan
Fila 5 = Salvador

La función CountA daría 4
Por el contrario la función que utiliza Andres te devuelve 5

Por lo que habría que poner una validación en la macro por si encuentra una celda vacía,

P. D.
Ya contemplaste si existe dos Pedro en tu lista, seria prudente adicionar no se el numero de fila al nombre del archivo o algún dato extra para diferenciar la duplicidad de nombres

Saludos desde México
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 Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Andres Leonardo (1583 intervenciones) el 20/07/2019 01:34:41
Alfredo,

Excelente Análisis de la función CountA (no lo conocía) y el cuestiona miento del tema de duplicidad de nombres, esto es lo que ayuda a aprender en los Foros.

Pd: En mi ejemplo si ya existe el archivo pedro, lo que se hará es que creara una nueva linea en este archivo con el segundo dato.

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
Imágen de perfil de alfredo lara
Val: 363
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por alfredo lara (120 intervenciones) el 20/07/2019 18:55:07
CLARO

No me había fijado del código "Append"
hace mucho que no uso ese tipo de archivos, gracias por recordarme
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 Dirk
Val: 455
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Dirk (166 intervenciones) el 22/07/2019 20:38:46
Hola Andres, pienso que con CountA me da el valor de una vez, mientras que el programa tendria que ir a la ultima fila y de alli luego ir hasta arriba para saber la fila donde terminar los datos, como dice tu teoria.... mientras haga lo que tenga que hacer sin errores... para mi está bien....

Hola Alfredo, pensé en usar CountA porque asumo que la data ya está procesada o tiene algún nivel de procesamiento o validación como que no hayan duplicados, que los sueldos estén correctos, que los correlativos también estén correctos, que la columna que voy a usar para nombrar los archivos tienen data y que no va a generar duplicidad (que no hayan 2 Jose, ni 2 Jose Gonzalez, ni 2 Jose Gonzalez en la misma Sucursal) y he allí lo importante de las validaciones previas, muy importante que Nicolas tome en cuenta esta situación, de cualquiera de las dos formas si tengo 10.000 registros debo tener 10.000 archivos también, eso me serviría como indicador de que todo se procesó bien.

El lo particular me gusta mas el codigo con While...

Salu2...
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

Gracias por el apoyo

Publicado por piolinmalo (1 intervención) el 13/03/2024 04:20:31
Que tal.

Muchas gracias por el apoyo, esto me sirvió muchísimo

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

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Jose Angeles (3 intervenciones) el 06/12/2021 22:36:45
Excelente macro.

Pero como puedo incluir que en cada TXT se incluya la cabecera o titulo de cada columna?

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 Hector
Val: 575
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Hector (137 intervenciones) el 21/07/2019 00:13:51
Buen dia, prueba este código; debes validar que tengas permiso en el path

1
2
3
4
5
6
7
8
9
10
Sub CrearArchivoTexto()
   'Explora hasta la ultima fila activa en la hoja
    Set fs = CreateObject("Scripting.FileSystemObject")
    For Cont = 2 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
        If Len(Range("B" & Cont).Value) >= 1 Then
           Set a = fs.CreateTextFile("D:\" & Range("B" & Cont).Value & ".txt", True)
           a.Close
        End If
    Next Cont
End Sub

o

1
2
3
4
5
6
7
8
9
10
Sub CrearArchivoTexto2()
    'Explora hasta encontrar la primera celda vacia
    Set fs = CreateObject("Scripting.FileSystemObject")
    Cont = 2
    Do While Len(Range("B" & Cont).Value) >= 1
       Set a = fs.CreateTextFile("D:\" & Range("B" & Cont).Value & ".txt", True)
       a.Close
       Cont = Cont + 1
    Loop
End Sub

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
Imágen de perfil de Hector
Val: 575
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Hector (137 intervenciones) el 21/07/2019 00:45:34
Buen dia, prueba este código; debes validar que tengas permiso en la ruta
olvide anexar la funcion trim

1
2
3
4
5
6
7
8
9
10
Sub CrearArchivoTexto()
   'Explora hasta la ultima fila activa en la hoja
    Set fs = CreateObject("Scripting.FileSystemObject")
    For Cont = 2 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
       If Len(Trim(Range("B" & Cont).Value)) >= 1 Then
          Set a = fs.CreateTextFile("D:\" & Range("B" & Cont).Value & ".txt", True)
          a.Close
       End If
    Next Cont
End Sub

o

1
2
3
4
5
6
7
8
9
10
Sub CrearArchivoTexto2()
      'Explora hasta encontrar la primera celda vacia
      Set fs = CreateObject("Scripting.FileSystemObject")
      Cont = 2
      Do While Len(Trim(Range("B" & Cont).Value)) >= 1
            Set a = fs.CreateTextFile("D:\" & Range("B" & Cont).Value & ".txt", True)
            a.Close
            Cont = Cont + 1
      Loop
End Sub

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
Imágen de perfil de Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Andres Leonardo (1583 intervenciones) el 22/07/2019 15:52:07
Hector
Buenos dias,
Excelente codigo, solo un tema deberias considerar que la referencia este habilitada
Microsoft Scripting Runtime Library (Scrrun.dll)

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
Imágen de perfil de David
Val: 211
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por David (40 intervenciones) el 24/07/2020 21:17:22
Estimado, en ese caso no es necesario habilitar referencias, ya que al usarlo de esa manera, ya está creando el objeto y haciendo el llamado a esa librería dll. Pero le faltó, eso si, dimensionar :

1
2
3
Sin referencias(Late Binding):
dim fso as object
set fso= CreateObject("Scripting.FileSystemObject")

Con Referencia/Early Binding); (el pro de activar es que te ayudará con el intellisense, es decir, ira mostrando sus metodos o funciones, los contra sería que el usuario debe activarlas desde la ide de VBA):

Manera Dinámica:
1
2
Dim fso As FileSystemObject
Set fso= New FileSystemObject
Manera Estática:
1
Dim fso as new FileSystemObject

Un cordial saludo.
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

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Nicolas Mariano (1 intervención) el 22/07/2020 16:42:03
hola, si le quiero agregar un texto al archivo como haría?
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.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Andres Leonardo (1583 intervenciones) el 22/07/2020 21:04:43
LA pregunta es que texto .. y donde se lo quieres adicionar al final de la linea?
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 David
Val: 211
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por David (40 intervenciones) el 24/07/2020 20:49:02
Este código crea un archivo txt por cada nombre y código (concatenado), y en cada uno inserta la linea en el archivo txt. Para agregar una linea a ese archivo solo se debe escribir en otra fila el código y el nombre, esa linea se agregara según la posición en que se ponga en la celda. Si el código esta en blanco, no se procesara esa fila y se marcara en color amarillo. Una vez que se complete, el color se borrará.
Si hay filas vacías entre medio, se la saltará.
Si hay mas datos en columnas, el código busca la ultima columna con datos y las traspasará al txt.
Entonces no importa la cantidad de filas o columnas, el código las buscará.



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
Sub rngDelimitador()
'@dj.vivanco
'ver 1.0.0 24-07-2020
 
Dim rng As Range, celda As Range, uf As Long, col As Integer
Dim rngFila As Variant, datosFila As Variant
Dim nomArchivo As String, Carpeta As String
 
uf = Range("A" & Rows.Count).End(xlUp).Row 'ultima fila con datos de la columna A
 
Set rng = Range("A2:A" & uf)
rng.Interior.Pattern = xlNone ' quito colores a la columna A
 
For Each celda In rng
    If celda.Value <> vbNullString Then 'si hay datos sigue:
        nomArchivo = celda.Value & "-" & celda.Offset(0, 1) 'concateno para noombre de archivo
        col = Cells(celda.Row, Columns.Count).End(xlToLeft).Column 'ultima columna a contar de la derecha
        If col > 1 Then 'si hay filas vacias daria error sin esta linea de código if
            rngFila = Range(celda, celda.Offset(0, col - 1)) 'establece el rango desde la celda actual hasta la final
 
            'JOIN une los 2 transpose con el separador "|",
            '(uno crea un array vertical y el otro lo deja horizontal nuevamente
            datosFila = Join(Application.Transpose(Application.Transpose(rngFila)), " | ")
 
            miCarpeta = "C:\Users\TUUSUARIOAQUI\Desktop\MICARPETAPLANILLAS\" 'RUTA COMPLETA AQUI
 
            Open miCarpeta & nomArchivo & ".txt" For Append As #1 'abre el archivo txt como numero 1
            Print #1, datosFila 'imprime en el archivo los datos de la fila completa
            Close ' cierra el archivo 1
 
        End If
    Else: celda.Interior.Color = vbYellow 'si no hay datos en celdas CODIGO , lo pintará de color amarillo
    End If
 
Next celda ' siguiente celda a procesar
 
End Sub

1

2
txts
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

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Juan Agustín (1 intervención) el 19/10/2020 15:45:36
Buen día, tengo una app que va agregando registros a un excel y necesito generar un nuevo txt con cada registro que se agrega al excel pero no le estoy encorando la vuelta a eso.
Existe alguna forma de que se genere un txt por cada registro agregado a un excel?
Necesito generar unos txt, como los mostrados por David, pero generar uno por cada línea que se agregue al excel.

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

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por greezzy MENDOZA (1 intervención) el 29/10/2020 14:50:33
Buenos dias
quisiera crear pero un archivo en extension excel y con la cabecera es decir aparecezcan los archivos con sus nombres de la celda b y contengan todo el cuerpo
ESTE LA CABECERA EN EL ARCHIVO NUEVO CREADO
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
sin imagen de perfil
Val: 7
Ha aumentado su posición en 2 puestos en Excel (en relación al último mes)
Gráfica de Excel

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Juan (2 intervenciones) el 13/05/2021 02:47:48
Hola, mi nombre es Juan Pablo, soy principiante en excel y quise editar sus macro para obtener de una planilla como la de la foto un archivo de texto por cada fila con las carateristicas de la otra foto, pero no tuve exito, desde ya muchas gracias por su ayuda!!

Screenshot-2021-05-12-205509
Screenshot-2021-05-12-205549
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 David
Val: 211
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por David (40 intervenciones) el 13/05/2021 04:31:05
Hola Juan, he modificado el código y funciona bien. Me cuentas que tal te va con el, saludos!

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
Sub rngDelimitador()
'@dj.vivanco
'ver 2.0.0 11-05-2021
 
Dim rng As Range, celda As Range, uf As Long, col As Integer
Dim rngFila As Variant, datosFila As Variant
Dim nomArchivo As String, Carpeta As String
 
'RUTA COMPLETA AQUI***************************************************
miCarpeta = "D:\desde_laptop\captain\"
'*********************************************************************
 
Set rng = Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
 
For Each celda In rng
 
    If celda.Value <> vbNullString Then 'si hay datos sigue:
 
        nomArchivo = celda.Value 'nombre de archivo
        interno = "SET FORCE_SIP_USERNAME " & """" & celda.Offset(0, 1).Value & """"
        Password = "SET FORCE_SIP_PASSWORD " & """" & celda.Offset(0, 2).Value & """"
        nombre = "SET FORCE_SIP_EXTENSION " & """" & celda.Offset(0, 3).Value & """"
 
        Open miCarpeta & nomArchivo & ".txt" For Append As #1 'abre el archivo txt como numero 1
 
        Print #1, interno
        Print #1, Password
        Print #1, nombre
 
        Close ' cierra el archivo
 
    End If
 
Next celda ' siguiente celda a procesar
 
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
1
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 2 puestos en Excel (en relación al último mes)
Gráfica de Excel

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Juan (2 intervenciones) el 13/05/2021 17:48:43
Excelente David, muchas gracias por tu ayuda, todavia no tuve la oportunidad de probarlo fuera de un entorno teorico, pero aparentemente va a funcionar sin problemas!!!
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

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Jose Angeles (3 intervenciones) el 08/12/2021 17:08:50
Hola David.

En tu código como puedo incluir que en cada archivo de txt creado también sea incluido el titulo de las columnas?.


Desde ya muchas 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.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Andres Leonardo (1583 intervenciones) el 08/12/2021 17:42:59
en donde deseas pon un ejemplo como debrias quedar¡
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

Un archivo txt por cada fila de excel con nombre del txt de una celda

Publicado por Jose Angeles (3 intervenciones) el 08/12/2021 19:14:02
Tratare de explicarme lo mejor posible:

Hoy en mi excel cuento con una tabla similar a la siguiente, donde la fila 1 es el titulo de cada columna y de la fila 2 en adelante es la información con la que cuento:


# Unidad Pedido RFCRemitente RFCDestinatario
(en blanco) (en blanco) (en blanco) (en blanco)
#¡REF! PM368424 QUA0402022D1 ISA950810229
#¡REF! PM368935 QUA0402022D1 ISA950810229


Con la lógica actual de la macro, al ejecutarla se generan 3 archivos de TXT, ya que mi variable que compara la información si es igual o si es diferente es la columna A.

Entonces me genera el txt 1, con los titulos, el txt 2, con los textos (en Blanco), y el txt 3 con las filas que su identificador es #¡REF!


Mi objetivo es que se generen solamente dos TXT.

El primero con la fila de los titulos y la fila con los textos en blanco:

# Unidad Pedido RFCRemitente RFCDestinatario
(en blanco) (en blanco) (en blanco) (en blanco)


Y un segundo txt con los títulos de las columnas y los dos renglones de información del identificador #¡REF!


# Unidad Pedido RFCRemitente RFCDestinatario
#¡REF! PM368424 QUA0402022D1 ISA950810229
#¡REF! PM368935 QUA0402022D1 ISA950810229


y así sucesivamente, hasta que ya no tenga información.

Utilice una de tus macros pero no he logrado hacer que los títulos acompañen la información que generar en TXT.


Tu macro que utilice es:



Limite = Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row


For i = 3 To Limite


Data = Range("A" & i).Value & ";" & Range("B" & i).Value & ";" & Range("C" & i).Value & ";" & Range("D" & i).Value

Filename = Application.ActiveWorkbook.Path & "\" & Range("A" & i).Value & ".txt"
Open Filename For Append As #1
Print #1, Data
Close #1

Next i

MsgBox ("Archivo generado exitosamente")
Application.ScreenUpdating = True



ojala tengas idea de como poder hacer que esa fila 1 acompañe a todos mis archivos.
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