UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se puede subir archivos al foro, favor de hacerlo en servidor externo (Dropbox, Drive...) y dejan link. "Sin archivo no hay respuestas"

Favor de leer "Todos los temas" Click aquí.

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1RESUELTO Macro que convierte a TXT el 27/04/18, 04:21 pm

SALAVERRINO


Buenos tardes a los integrantes de este foro, en esta ocasión recurro a Uds, para que me brinde su apoyo y colaboración en comprender o mejorar la macro que se detalla acontinuación, dicha macro permite generar los datos aun archivo TXT., y mi duda es la siguiente:

1. Al ejecutar la macro desde la Hoja PLANILLA en el botón AFPNET WEB genera el archivo AFPNET.TXT como error. (archivo a macro.zip), 
2. Cuando me dirijo y ubico en hoja AFPNET y ejecuto la macro EXPORTAR_TXT_ANCHOFIJO, genera el archivo AFPNET.TXT como OK. (archivo a macro.zip).
3. Ahora bien en el archivo a macro.zip, se aprecia que la hoja debe ser la hoja10 Sheets 10) .

Código:
Sub EXPORTAR_TXT_ANCHOFIJO()[size=12][/size]
Dim i As Double[size=12][/size]
'Creamos automáticamente un .txt en blanco que llamamos EJEMPLO[size=12][/size]
'el archivo se creará en la misma unidad que tenemos el Excel.[size=12][/size]
Archivo_txt = ThisWorkbook.Path & "\" & "AFPNET.txt"[size=12][/size]
'si queremos cambiar su ubicación basta con poner Archivo_txt = "E:\EJEMPLO.txt"[size=12][/size]
Open Archivo_txt For Output As #1[size=12][/size]
[size=12][/size]
With Sheets(10)[size=12][/size]
fin = Application.CountA(Range("A:A"))[size=12][/size]
[size=12][/size]
[size=12][/size]
For i = 2 To fin[size=12][/size]
'Asignamos a cada Campo la función que necesitamos aplicar[size=12][/size]
Campo1 = C_Der(.Cells(i, 1), 5)[size=12][/size]
Campo2 = C_Der(.Cells(i, 2), 12)[size=12][/size]
Campo3 = C_Der(.Cells(i, 3), 1)[size=12][/size]
Campo4 = C_Der(.Cells(i, 4), 20)[size=12][/size]
Campo5 = C_Der(.Cells(i, 5), 20)[size=12][/size]
Campo6 = C_Der(.Cells(i, 6), 20)[size=12][/size]
Campo7 = C_Der(.Cells(i, 7), 20)[size=12][/size]
Campo8 = C_Der(.Cells(i, 8), 1)[size=12][/size]
Campo9 = C_Der(.Cells(i, 9), 1)[size=12][/size]
Campo10 = C_Der(.Cells(i, 10), 1)[size=12][/size]
Campo11 = C_Der(.Cells(i, 11), 1)[size=12][/size]
Campo12 = C_Der(.Cells(i, 12), 9)[size=12][/size]
Campo13 = C_Der(.Cells(i, 13), 9)[size=12][/size]
Campo14 = C_Der(.Cells(i, 13), 9)[size=12][/size]
Campo15 = C_Der(.Cells(i, 15), 9)[size=12][/size]
Campo16 = C_Der(.Cells(i, 16), 1)[size=12][/size]
Campo17 = C_Izq(.Cells(i, 17), 2)[size=12][/size]
[size=12][/size]
Print #1, Campo1 & Campo2 & Campo3 & Campo4 & Campo5 & Campo6 & Campo7 & Campo8 & Campo9 & Campo10 & Campo11 & Campo12 & Campo13 & Campo14 & Campo15 & Campo16 & Campo17[size=12][/size]
[size=12][/size]
Next i[size=12][/size]
[size=12][/size]
Close[size=12][/size]
End With[size=12][/size]
End Sub

Desde ya agradezco su apoyo y colaboración.

Saludos
Archivos
a macro.zip
No tienes los permisos para descargar los archivos.
(242 KB)

2RESUELTO Re: Macro que convierte a TXT el 08/05/18, 12:33 am

Miron


Cambia esta línea:

fin = Application.CountA(Range("A:A"))

Por esta

fin = Application.CountA(.Range("A:A"))

3RESUELTO Re, Macro que convierte a TXT el 08/05/18, 01:16 am

Miron


Me tome el atrevimiento de hacer algunas modificaciones.

Option Explicit

Sub EXPORTAR_TXT_ANCHOFIJO()
    Dim i As Long
    Dim j As Long
    Dim k As Integer
    Dim Fin As Long
    Dim Campo As String
    Dim Archivo_txt As String
   

    'Creamos automáticamente un .txt en blanco que llamamos EJEMPLO
    'el archivo se creará en la misma unidad que tenemos el Excel.
    k = FreeFile
    Archivo_txt = ThisWorkbook.Path & "\" & "AFPNET.txt"
   
    'si queremos cambiar su ubicación basta con poner Archivo_txt = "E:\EJEMPLO.txt"
    Close #k
    Open Archivo_txt For Output As #k

    With Sheets(1)
        Fin = Application.CountA(.Range("A:A"))

        For i = 2 To Fin
            Campo = vbNullString
            For j = 1 To 17
                Campo = Campo & c_Der(.Cells(i, j), 20)
            Next j
            Print #k, Campo
        Next i
    End With
   
    Close #k
End Sub


Function c_Der(Valor As String, Longitud As Integer) As String
    Valor = Trim$(Valor)
    c_Der = Valor & String(Longitud - Len(Valor), " ")
End Function


Saludos

4RESUELTO Re: Macro que convierte a TXT el 09/05/18, 12:08 pm

Igtelo

avatar
Resuelto y cierro.

Ignacio Téllez

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

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