| ||||
Duda para generar un txt con un macro Hola Colegas, me gustaria ver si puedo guardar un datos de una hoja de excel en un txt, a traves de un macro, si me pueden dar algun codigo para analizaro algun link, se los voy a agradecer ;) saludos
__________________ -- Nunca te des por vencido, aún vencido -- Web |
| ||||
Re: Duda para generar un txt con un macro Hola Abrahamvj, la verdad que no intente, por que no se me ocurrio como generarlo manualmente desde los menues. Ahora que me lo comentaste lo chequie, y voy a probar con guardar una hoja como txt a ver que codigo sale, gracias ;)
__________________ -- Nunca te des por vencido, aún vencido -- Web |
| ||||
Re: Duda para generar un txt con un macro Hola Abrahamvj, hice unas pruebas y tengo el siguiente problema: Usando "guardar como", me cambia el archivo en uso a la extension txt, y no es lo que busco, sino generar un txt nuevo de una hoja determinada con la extencion txt y que el archivo en uso siga siendo de excel. La macro que me genera es: Sub Macro2() ChDir "C:\Documents and Settings\Administrador\Escritorio" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\Administrador\Escritorio\" & Range("b4").Value & ".txt", FileFormat:= _ xlUnicodeText, CreateBackup:=False End Sub PD: La macro adjunta tambien tiene un error en el nombre, ya que no logro asignarle un nombre variable al archivo a crear (txt) Alguna idea de como sigo? :D gracias por adelantado
__________________ -- Nunca te des por vencido, aún vencido -- Web |
| ||||
Re: Duda para generar un txt con un macro Encontre este macro y lo adapte a lo que mas o menos busco, lo dejo por si alguien lo necesita, lo unico que le faltaria adaptar es que guarde la informacion de un rango en el txt, en vez de solo una columna Sub Txt2() Dim Archivo As String, dato As String Archivo = "C:\" & Range("A1").Value & ".txt" Open Archivo For Append As #1 Do While ActiveCell <> Empty dato = ActiveCell.Value Print #1, dato ActiveCell.Offset(1, 0).Activate Loop Close #1 End Sub
__________________ -- Nunca te des por vencido, aún vencido -- Web |
| ||||
Duda para generar un txt con un macro Una variante dentro del mismo esquema sería:
Código:
Saludos Sub GeneraTxt() Dim MiRango As Range, Largo As Integer, FilaActual As Long On Error Resume Next Set MiRango = Application.InputBox("Seleccione rango a exportar", Type:=8) On Error GoTo 0 If MiRango Is Nothing Then Exit Sub Open "C:\TEXTO.txt" For Output As #1 For Each Celda In MiRango If Largo <= Len(Celda) Then Largo = 1 + Len(Celda) Next Celda FilaActual = MiRango.Cells(1).Row For Each Celda In MiRango If FilaActual < Celda.Row Then FilaActual = Celda.Row: Print #1, "" End If Print #1, CStr(Celda); Space(Largo - Len(Celda)); Next Celda Close #1 Set MiRango = Nothing End Sub |
| |||
Respuesta: Duda para generar un txt con un macro Hola amigo: Modifique tu código para que en vez de usar espacio agregara como separador un ;, ya que asi lo necesitaba. pero ahora tengo un problema que es una tonteria y ya la cabeza no me da. a ver si ustedes ven. el problema es que cada linea de datos termina con el ; y en mi caso el ultimo elemento deberia terminar sin esta. este es el codigo que modifique: ----------------------------- Sub GeneraTxt() Dim MiRango As Range, Largo As Integer, FilaActual As Long On Error Resume Next Set MiRango = Application.InputBox("Seleccione rango a exportar", Type:=8) On Error GoTo 0 If MiRango Is Nothing Then Exit Sub Open "\TEXTO.txt" For Output As #1 For Each celda In MiRango If Largo <= Len(celda) Then Largo = 1 + Len(celda) Next celda FilaActual = MiRango.Cells(1).Row For Each celda In MiRango If FilaActual < celda.Row Then FilaActual = celda.Row: Print #1, "" End If Print #1, CStr(celda); ";"; Next celda Close #1 Set MiRango = Nothing End Sub ------------------------------------------------------------------ Espero haberme explicado. y gracias por su tiempo. ----------------------------------------------- anterior ------------------- Cita:
Iniciado por mrocf Una variante dentro del mismo esquema sería:
Código:
SaludosSub GeneraTxt() Dim MiRango As Range, Largo As Integer, FilaActual As Long On Error Resume Next Set MiRango = Application.InputBox("Seleccione rango a exportar", Type:=8) On Error GoTo 0 If MiRango Is Nothing Then Exit Sub Open "C:\TEXTO.txt" For Output As #1 For Each Celda In MiRango If Largo <= Len(Celda) Then Largo = 1 + Len(Celda) Next Celda FilaActual = MiRango.Cells(1).Row For Each Celda In MiRango If FilaActual < Celda.Row Then FilaActual = Celda.Row: Print #1, "" End If Print #1, CStr(Celda); Space(Largo - Len(Celda)); Next Celda Close #1 Set MiRango = Nothing End Sub Última edición por joseravelo; 09/03/2010 a las 20:15 Razón: error de tipeo |
| ||||
Respuesta: Duda para generar un txt con un macro Buen dia!!! Primero que nada gracias por el valioso he aporte, me ha servido para generar un txt desde excel, el detalle es que necesito hacerle unos pequeños cambios... estoy utilizando el codigo: Sub GeneraTxt() Dim MiRango As Range, Largo As Integer, FilaActual As Long On Error Resume Next Set MiRango = Application.InputBox("Seleccione rango a exportar", Type:=8) On Error GoTo 0 If MiRango Is Nothing Then Exit Sub Open "C:\IT\TEXTOP.txt" For Output As #1 For Each Celda In MiRango If Largo <= Len(Celda) Then Largo = 1 + Len(Celda) Next Celda FilaActual = MiRango.Cells(1).Row For Each Celda In MiRango If FilaActual < Celda.Row Then FilaActual = Celda.Row: Print #1, "" End If Print #1, CStr(Celda); Space(Largo - Len(Celda)); Next Celda Close #1 Set MiRango = Nothing End Sub y obtengo un resultado muy parecido al que quiero, pero el detalle esta en que quisiera que solo para la primera columna se generen 5 espacios. es decir entre la columna 1 y 2 siempre existan 5 espacios en blancos, y para todas las demas solo un espacio en blanco.. al igual que para algunas celdas, que deben tener una longitud especifica, al no tenerla en el excel, en el momento de generar el txt se complete el tamaño de esa longitud con ceros.. agradeceria mucho de su ayuda |
| |||
Respuesta: Duda para generar un txt con un macro Hola, buen dia a todos He probado y usado el codigo de Cacho y: Si no existe un archivo en C:\ llamado TEXTO.txt, presenta error 75 en timpo de ejecucion diciendo que "error de acceso a la ruta o al archivo", es decir, si no existe archivo con ese nombre en la raiz de C:, nada se puede hacer (talves sea por eso de permisos en la raiz donde esta instalado el SO) pero creando con anterioridad un archivo de texto llamado segun la macro, ahí si se ejecuta a perfeccion. Cambio la ruta; Open "C:\0\TEXTO.txt" For Output As #1 y todo como se pensó, ejecucion sin tener que crear el archivo con anterioridad. uso el Office 2010 El codigo de abrahamvj cambio el rango a donde empiesa el texto, en mi caso B3, (el contenido va desde B3 a b36 con lineas vacias de por medio), ejecuto la macro y me copia SOLO hasta encontrar la primera linea vacia (B5). El archivo txt SOLO presenta la linea B3 y B4 Solo comento esto como detalle, Cacho, abrahamvj y los demas EXPERTOS, pienso que sabran el porque, pues su experiencia y pratica los lleva a ese punto, no es comida para mi persona. Gracias.
__________________ Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas http://i64.tinypic.com/rho40i.jpg Última edición por JoaoM; 20/07/2012 a las 08:00 |
| ||||
Respuesta: Duda para generar un txt con un macro Cerrado, NO se permite revivir temas viejos.
__________________ NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL |