Macro para importar txt en excel

Necesito una ayudita para crear una macro para importar un txt a excel, la quisiera especificarle la ruta para que tome el archivo sin preguntarme.

1 Respuesta

Respuesta
1
Qué es lo que quieres que no te pregunte
1. La ruta dónde guardará el archivo
2. El nombre del archivo
3. La confirmación de que será un TXT
Especifica esto para poder ayudarte
Hola, gracias por responder!
Yo para actualizar el txt importado me posiciono en la hoja y voy al menu datos - actualizar datos - selecciono el archivo y lo importo.
Mi idea es crear un botón para hacer todos estos paso con un solo click o si lo puede actualizar automáticamente cada determinado tiempo.
Desde ya muchas gracias!
No sé cómo esté estructurado tu archivo de texto, pero me imagino que tal vez tiene alguna separación uniforme de columnas, así que aquí te mando un código el cual importa un archivo de texto SIEMPRE y CUANDO se llame igual todas las veces que vayas a importar(tu dijiste que ya no querías que te preguntara)solo define la ruta dentro del mismo código te pongo una nota dónde deberás especificarla(te señalo con negrita lo que debes mover para poner la ruta de tu archivo), solo cópialo y pégalo en tu editor VBA y asinalo a un botón y listo. Espero sea lo que necesitas
P.D. Solo te va a preguntar a partir de qué celda va a poner el texto importado, es lo único.
Sub importar()
ubica = InputBox("En qué celda va empezar la importación del Texto")
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;C:\Documents and Settings\185\Mis documentos\importar_datos_excel.txt" _
, Destination:=Range(ubica)) 'AQUI DEBES SEÑALAR LA RUTA DONDE ESTA TU ARCHIVO DE DATOS ORIGEN
        .Name = "importar_datos_excel_1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 850
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub
Hola, ¿solo tengo que modificar lo que esta en negrita? No entendí la parte donde dice
Destination:=Range(ubica)) 'AQUI DEBES SEÑALAR LA RUTA DONDE ESTA TU ARCHIVO DE DATOS ORIGEN
Porque me trae todo en una sola columna
Muchas Gracias!
No, solo debes modificar lo que está en negritas y entre comillas (C:\Documents and Settings\185\Mis documentos\importar_datos_excel.txt) lo que pasa que como esta muy grande la línea de programación no cupo en una sola y el post lo puso en doble línea, pero lo que tu mencionas no lo muevas, solo lo que te acabo de decir.
Vos sabes que me trae todo en una sola columna, ¿tendrá algo que ver que el txt tenga datos numéricos y alfabéticos?
Es que es lo que te decía no sé cómo está estructurado tu archivo de texto por eso yo lo hice con un archivo standard, si quieres mandame tu TXT a [email protected] para ver si te lo puedo adaptar.
Ah y específicame en base a qué separas tus columnas, si cuando encuentre un espacio, cuando encuentre una coma, si hay algún separador especial, etc. Algo que me ayude a descifrar cómo quieres que quede acomdado en las columnas al importarto a excel.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas