Jump to content

Archived

This topic is now archived and is closed to further replies.

juancarlos1217

importar varios archivos txt a una hoja de excel

Recommended Posts

Buenas noches...

Mi nombre es JuanCarlos, soy nuevo en el foro y de igual manera no soy experto en programación, tengo el siguiente problema con Excel 2010, pido su colaboración.. gracias.

problema:

1. importar de varios archivos .txt (txt1, txt2, txt3, etc) a la hoja_1 de un Libro de Excel 2010 la información de manera consecutiva... es decir el txt1 estará desde la fila A1 hasta la fila que sea necesario (no determinado *3), siguiente fila continua el txt2 hasta fila necesaria (*3) y así sucesivamente....

2. cada archivo txt contiene los mismos campos y estructura, separados por comas.

*3. el Rango de filas de cada txt es variable, algunos contiene 20 registros, otros mas de 50.

Soluciones encontradas:

1. con la siguiente macro encontrada en Google, logre la importación de los archivos, pero lo realiza a varias hojas de excel de un mismo libro, es decir, txt1 a hoja1, txt2 a hoja 2, etc...

Sub abrir_txt()

On Error Resume Next

milibro = ActiveWorkbook.Name

Set navegador = CreateObject("shell.application")

carpeta = navegador.browseforfolder(0, "SELECCIONA CARPETA", 0, "c:\").items.Item.Path

ChDir carpeta & "\"

archi = Dir("*.txt")

Do While archi <> ""

Workbooks.OpenText archi, origin:=xlWindows, startrow:=1, DataType:=xlDelimited

otro = ActiveWorkbook.Name

ActiveSheet.Copy before:=Workbooks(milibro).Sheets(1)

Workbooks(otro).Close False

archi = Dir()

Loop

End Sub

2. utilice el Grabador de Macros para realizar el procedimiento necesitado de un solo archivo TXT, el mismo genera las columnas que se necesitan...

Sub import_bak()

'

' import_bak Macro

'

' Atalho por teclado: Ctrl+k

'

With ActiveSheet.QueryTables.Add(Connection:= _

"TEXT;C:\Users\Juan\Documents\informe.txt", Destination:= _

Range("$A$1"))

.CommandType = 0

.Name = "01=01072011"

.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 = False

.TextFileSemicolonDelimiter = False

.TextFileCommaDelimiter = True

.TextFileSpaceDelimiter = False

.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 _

, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)

.TextFileTrailingMinusNumbers = True

.Refresh BackgroundQuery:=False

End With

End Sub

........

Agradezco su ayuda.... mi correo electronico juan.carlos@hotmail.com

Share this post


Link to post
Share on other sites



  • Posts

    • @pixelatumente, te recomiendo que rellenes los campos de tu perfil referentes al separador de argumentos y versión de Excel que usas. Con Excel 365 hay una respuesta fácil a tu consulta.
    • Gracias por tu aportación. Estoy probando añadiendo más información en la columna B pero no funciona.
    • Saludos compañeros,tengo una tabla dinamica con algunas medidas,una de ellas devuelve el ultimo vendedor que tuvo cierto cliente,el caso es que cuando filtro por vendedor,efectivamente muestra el vendedor,pero sigue mostrando los clientes que antes atendia pero que ya no,solo que en la columna ult vendedor queda la celda vacia,lo que me indica que ese cliente lo tiene actualmente otro vendedor,lo que deseo es que cuando se realice el filtro solo aparezca el vendedor con su cliente actual,sin celdas en blanco en la columna ultvendedor,en el ejemplo adjunto hay mas aclaratorias.tengo otras preguntas que estan relacionadas con el mismo archivo pero no se si es posible hacer varias preguntas en u mismo post,la otra pregunta es como puedo meter en un slicer una medida para filtrar por esa medida,en la columna estatus tengo el estatus de activo,down y bajada quiero un slicer que cuando selecione lost me aparezcan solo los clientes perdidos por ejemplo,y finalmente como puedo hacer un conteo de los clientes con los diferentes estatus por vendedor para poder hacer luego un analisis de cuantos clientes perdidos,activos o en bajada tienen cada vendedor,si debo hacer estas preguntas en otro post me disculpo y lo hare seguro,volvemos solo a la primera pregunta,si no hay lio en responder las otras preguntas se los agradezco.saludos cordiales mis estimados Maestro de pedidos 1.2.xlsx
    • Hola @Antoni, muchas gracias por la respuesta, funciona bien, pero me di cuenta de algo que tal vez no empleé término correcto. Me estoy dando cuenta que si el valor del MONTO TOTAL reflejado en la columna J varía por modificaciones que se haga en la información. El valor que se copió en la hoja CONTROL GENERAL no se actualiza. Creo que empleé mal el término copiar como valor. Debería actualizarse si CONTROL1 se modifica. Así se mantiene actualizada la información en caso de cambios. Agradecido de antemano y disculpa no haberme expresado bien.  Gracias
    • Hola, Revisa el archivo a ver si te sirve. Saludos.  Prueba.xlsx
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy