............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

macro que genere archivo txt desde excel

Ver el tema anterior Ver el tema siguiente Ir abajo

macro que genere archivo txt desde excel

Mensaje por peterjano el Jue Feb 23, 2012 7:45 pm

Estimados

necesito una macro que me genere un archivo txt desde un archivo excel con caracteristicas del contenido de cada celda en cuanto a su extencion y tipo de caracter. cuando una celda no completa el total de carcteres se debe rellenar con ceros ej. celda debe ser numerica de 11 caracteres (84567687) debe ser (00084567687), adjunto archivo excel para cual necesito la macro (los registros pueden ser de 1 a n); los campos son 105.

y adjunto txt como tiene que salir el archivo plano.


espero me puedan ayudar he visto algunas macros pero estoy retomando esto despues de 4 años y tengo que repasar todo de nuevo para ponerme a tono.
Archivos
Archivo plano.xls No tienes los permisos para descargar los archivos.(32 KB) Descargado 165 veces
Archivo PreviRed.txt No tienes los permisos para descargar los archivos.(5 KB) Descargado 139 veces

peterjano

Masculino Cantidad de envíos : 4
Edad : 42
Ciudad - Pais : concepcion-Chile
Version de Excel : 2003
Fecha de inscripción : 24/04/2009

Volver arriba Ir abajo

Re: macro que genere archivo txt desde excel

Mensaje por moises melgar el Jue Feb 23, 2012 11:09 pm

DEsconosco la version 2003, pero en 2007
....mejor muestro un ejemplo sencillo, adaptala
por que lo que pides es muy complejo pero no imposible, alguien debe dedicarle tiempo.

pero adjunto ejemplo para que te puedas guiar y tengas una base
Archivos
ejemplo sencillo de Exportar a txt una columna y completar con ceros.xlsm No tienes los permisos para descargar los archivos.(27 KB) Descargado 259 veces
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 557
Edad : 29
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: macro que genere archivo txt desde excel

Mensaje por peterjano el Sáb Feb 25, 2012 1:30 pm

Moises, muchas gracias lo analizo

peterjano

Masculino Cantidad de envíos : 4
Edad : 42
Ciudad - Pais : concepcion-Chile
Version de Excel : 2003
Fecha de inscripción : 24/04/2009

Volver arriba Ir abajo

Re: macro que genere archivo txt desde excel

Mensaje por peterjano el Sáb Feb 25, 2012 5:00 pm

moises, revise tu envio, es lo que necesito, favor me podrias indicar que parte de la estructura debo seguir copiando para transformar las sgtes columnas con sus distintas restrcciones.

peterjano

Masculino Cantidad de envíos : 4
Edad : 42
Ciudad - Pais : concepcion-Chile
Version de Excel : 2003
Fecha de inscripción : 24/04/2009

Volver arriba Ir abajo

Re: macro que genere archivo txt desde excel

Mensaje por moises melgar el Mar Feb 28, 2012 10:41 pm

Ok todo esta en la linea de

a.WriteLine ()

todo lo que escribas en esa linea sera loque le corersponda a cada linea del txt

y como lo coloque dentro de un bucle va pasando de linea en linea

la parte de
If Len(Hoja1.Range("A" & x).Value) < 11 Then
For y = 1 To 11 - Len(Hoja1.Range("A" & x).Value)
rango = "" & rango & 0 & ""
Next y
End If

deterina si el largo del dato es menor a 11 completara los ceros necesarios para la columna A, para las otras columnas hay quie colocarles la condicional correspondiente

aparte de los bucles tambien existen las matrices

por ejemplo
DIm A
A(000,00,0,"")
si colocas A(1), dara como resultado "000"
A(2) = 00
A(3) = 0

Esperoque captes lo que te trato de decir, podrias colocar
A(largo del dato)
y dentro de la matriz acomodarlo de tal manera que cubra tus expectativas....



Otra idea es Utilizar una macro que llene las columnas primero y luego guarde como Txt

Ok los ejemplos lo dejo pendiente por que ya es tarde, espero que mi pequeña explicacion te sirva y te deseo suerte.
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 557
Edad : 29
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: macro que genere archivo txt desde excel

Mensaje por peterjano el Jue Mar 01, 2012 11:09 am

ok, me avisouchas gracia, voy a analizarlo y t

peterjano

Masculino Cantidad de envíos : 4
Edad : 42
Ciudad - Pais : concepcion-Chile
Version de Excel : 2003
Fecha de inscripción : 24/04/2009

Volver arriba Ir abajo

Re: macro que genere archivo txt desde excel

Mensaje por Cacho R el Jue Mar 01, 2012 5:21 pm

Hola! peterjano (y moises).
Las fórmulas del archivo que te adjunto creo que -también- podría ayudarte.

Saludos, Cacho R.
Archivos
Archivo plano.xls No tienes los permisos para descargar los archivos.(37 KB) Descargado 165 veces
avatar
Cacho R
Moderador
Moderador

Masculino Cantidad de envíos : 210
Ciudad - Pais : Buenos Aires
Version de Excel : Desde Multiplan (pre-Excel) hasta 2010
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: macro que genere archivo txt desde excel

Mensaje por GalileoGali el Dom Mar 04, 2012 1:06 am

y FORMAT(NUMERITO, "00000000000") ?????, la verdad no lo probé...

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

ayuda

Mensaje por jesurf el Miér Mayo 02, 2012 8:29 pm

peterjano escribió:Estimados

necesito una macro que me genere un archivo txt desde un archivo excel con caracteristicas del contenido de cada celda en cuanto a su extencion y tipo de caracter. cuando una celda no completa el total de carcteres se debe rellenar con ceros ej. celda debe ser numerica de 11 caracteres (84567687) debe ser (00084567687), adjunto archivo excel para cual necesito la macro (los registros pueden ser de 1 a n); los campos son 105.

y adjunto txt como tiene que salir el archivo plano.


espero me puedan ayudar he visto algunas macros pero estoy retomando esto despues de 4 años y tengo que repasar todo de nuevo para ponerme a tono.

muy buenas noches amigo. tengo el mismo interes de crear una macro similar ya he avanzado en un ejemplo pero todavia bno resuelvo lo de los ceros, quisiera saber si encotro la solucion o podria pasarme el ejemplo concreto para guiarme.. de ante mano muchisimas gracias y buenas vibras.

jesurf

Masculino Cantidad de envíos : 2
Edad : 29
Ciudad - Pais : Caracas - Venezuela
Version de Excel : 2010
Fecha de inscripción : 02/05/2012

Volver arriba Ir abajo

aporte de mi progreso con la exportacion de TXT y consulta de la duda

Mensaje por jesurf el Lun Mayo 07, 2012 4:38 pm

Saludos y bendiciones,

escribo para ver quien pueda ayudarme con una duda, tengo el siguiente codigo para exportar los datos q tengo en mi hoja1 para un archivo txt, el cual ya he establecido ciertos parametros pero debo completar lo siguiente, el archivo txt no debe estar separado por tabulaciones, debera ser una linea entera donde cada columna es delimitada segun la posicion y tamaño q esta ocupe. ejemplo:

así es el archivo original en excel:

Rif: Nombre: numero de cuenta Monto: Codigo de factura:

J-29365705-9 MICRO SKY 01340363503631296334 BS 73.777,51 1695



así va con el código q adjunto:

J293657059 MICRO SKY 01340363503631296334 000007377751 0000001695



así debería quedar en el TXT

J293657059MICRO SKY 013403635036312963340000073777510000001695

rif empieza en la posicion 1 y tiene una longitud de 10caracteres,nombre debera empezar en la posicion 11 con una longitud de 35caracteres,numero de cuenta en la posicion 46 con una longitud de 20caracteres,monto en la posicion 67 con una longitud de 12caracteres,Codigo de factura en la posicion 79 con longitud de 10 caracteres. los simbolos como "-" "," "." y "BS" los remplase x espacios en blanco con el codigo adjunto y los espacios en blancos son rellenados con ceros en los casos de monto y codigo de factura..

alguien podria ayudarme a terminar este ultimo paso? alguna idea o aporte

Sub Exportando_TXT()
On Error Resume Next
'Ocultamos el procedimiento
Application.ScreenUpdating = False

'Cambiando los formatos para el TXT
'------------------
Range("A1").Select
'recorremos para abajo fila a fila,
'hasta encontrar una vacía
Do While Not IsEmpty(ActiveCell)
'reemplazamos simbolos por nada,
'o lo que es lo mismo, los quitamos
'siempre y cuando no estemos en una fórmula
If Left(ActiveCell.Formula, 1) <> "=" Then
ActiveCell = Replace(ActiveCell, "-", "")
End If
'bajamos una fila
ActiveCell.Offset(1, 0).Select
Loop
Range("D1").Select
'recorremos para abajo fila a fila,
'hasta encontrar una vacía
Do While Not IsEmpty(ActiveCell)
If Left(ActiveCell.Formula, 1) <> "=" Then
ActiveCell = Replace(ActiveCell, "BS", "")
ActiveCell = Replace(ActiveCell, ".", "")
ActiveCell = Replace(ActiveCell, ",", "")
End If
ActiveCell.Offset(1, 0).Select
Loop
'Defino el rango para los ceros a la izquierda segun formato
Range("C1").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.NumberFormat = "@"
ActiveCell = Format(ActiveCell, "00000000000000000000")
ActiveCell.Offset(1, 0).Select
Loop

Range("D1").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.NumberFormat = "@"
ActiveCell = Format(ActiveCell, "000000000000")
ActiveCell.Offset(1, 0).Select
Loop

Range("E1").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.NumberFormat = "@"
ActiveCell = Format(ActiveCell, "0000000000")
ActiveCell.Offset(1, 0).Select
Loop
'------------------------------------
'copiamos la hoja activa en un nuevo libro

ActiveSheet.Copy
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
fichero = ThisWorkbook.Name
ruta = ThisWorkbook.Path
fichero = Replace(fichero, ".xlsx", "")
fichero = Replace(fichero, ".xls", "")
ActiveSheet.Select
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=ruta & "\" & fichero & ".txt", FileFormat:=xlText
ActiveWorkbook.Close
Application.ScreenUpdating = True

End Sub

jesurf

Masculino Cantidad de envíos : 2
Edad : 29
Ciudad - Pais : Caracas - Venezuela
Version de Excel : 2010
Fecha de inscripción : 02/05/2012

Volver arriba Ir abajo

Re: macro que genere archivo txt desde excel

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.