Saltar al contenido

Importar txt con longitud fija variada en las filas


Recommended Posts

publicado

Sub importarEnDesarrollo()
    Dim wb As Workbook
    Set wb = ThisWorkbook
    Dim ws_main As Worksheet
    Set ws_main = wb.Worksheets("Main")
    Dim directorio As String
    'directorio = ws_main.range("path").Value
    directorio = "C:\Users"
    Dim sCadena As Variant
    Dim nFichero As String
    Dim i As Integer
    i = 0
    Open directorio For Input As nFichero
    Do While Not EOF(nFichero)
        Line Input #nFichero, datos
        i = i + 1
        sCadena = datos
        With Sheets(1)
            .Cells(i, 1) = Trim(Mid(sCadena, 1, 10))
            .Cells(i, 1) = Trim(Mid(sCadena, 12, 4))
            .Cells(i, 1) = Trim(Mid(sCadena, 16, 14))
            .Cells(i, 1) = Trim(Mid(sCadena, 31, 4))
            .Cells(i, 1) = Trim(Mid(sCadena, 48, 1))
        End With
    Loop
End Sub

Con el código anterior, puedo importar el fichero con esas logitudes.

Pero el problema es que mi archivo tiene esas longitudes fijas en las 20 primeras lines, otra longitudes distintas en las filas 21 a 25 y otras longitudes de la 26 a la 40.

Agradezco cualquier ayuda.

publicado

Por favor, sube un ejemplo del archivo que quieres importar. Si no conocemos esas longitudes o la estructura del archivo, va a ser complicado ayudarte.

publicado

En este caso no te servirá la macro que has publicado en el mensaje anterior porque hace los "cortes" según el número de posición.

Yo te recomendaría pasar de VBA a Power Query porque podrás gestionar más fácilmente cualquier cambio en la estructura del archivo.

También quedo pendiente a lo que te puedan responder otras personas.

publicado

Cada que vayas recorriendo el TXT , pregunta el largo de la fila y asi determinaras que tratamiento le drás.

Pero sube tu archivo.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.