Home > Foro de Excel >

Debates de Excel > Ayuda urgente

Grupo de Excel
Foro de Excel
18161 Debates | 2015 Documentos | 1 Vídeo | 1 Test | 1 Blog | 675 Imágenes | 16750 Miembros

Ayuda urgente

Escrito por Felipe Prado el 7 de Octubre

Hola Estimados:
Llevo mucho tiempo intentando resolver este problema, y ya me esta ocasionando problemas en mi trabajo, ya que debia terminarlo hace tiempo:

Les cuento:
1. Tengo un archivo de texto con mas de 100. 000 filas de datos
2. Desde una planilla excel (adjunto con nombre "EXPLICACION") quiero ingresar en una celda (C4) un numero que corresponde al registro unico de cada fila de datos del txt.
3. Luego en otras celdas, quiero que me muestre el resto de los campos asociados a ese registro unico. (algo parecido con un buscarv)

¿Como lo he intentando resolver?

1. El archivo txt lo vincule a una tabla de un archivo access (el archivo txt cambia todos los dias, y por ende su cantidad de fila de datos).

2. Desde esta base de datos en access intento leer desde excel los campos. Use para esto el ejemplo subido por Abraham (ACCESS 2, en el cual va visualizando diferentes registros de la base de datos, pero no funciona como buscador de datos).

3. En este tema:
http://foros.emagister.com/tema-ado_excel_access_de_abraha-12890-913970-1. Htm
Cacho sube un ejemplo que se asemeja a lo que necesito, pero copia los datos en excel desde access pero tiene menos de 60. 000 filas. (y mi archivo tiene mas de 100. 000). Y el codigo no logro entenderlo muy bien.

4. La otra opcion fue un tema que encontre donde se importaba un txt. Con mas de 65. 000 filas hacia excel separandolos en diferentes hojas.
http://foros.emagister.com/tema-importar_archivo_txt_de_mas_de_65000_filas_a_excel_en_varias_hoja-12890-833327-1. Htm
Pero el codigo de la macro no me funciono arrojando error en
temp = CreateObject("Scripting. FileSystemObject"). OpenTextFile(fn). ReadAll

EL ARCHIVO TXT ESTA EN ESTA UBICACION
Http://www.mediafire.com/? Sharekey=42e52c98eec24b390de4fc1039a0167420fe0d9430e8008cf0a154af670496da

Ya no se como mas intentarlo..

hay otros aspectos importantes pero al menos se como podria solucionarlos.
El archivo txt cambia dia a dia, y su cantidad de filas tambien. (y esta alojado en un servidor web)
En access puedo realizar una vinculacion dinamica hacia este archivo, siempre y cuando le cambie el nombre por uno estandar y lo copie en una determinada ubicacion del pc. Pero creo que es posible que vaya leyendo el ultimo archivo subido al servidor.

Eso, ojala me puedan echar una manito.. Recibo cualquier opinion o sugerencia!



Ficheros adjuntos:
EXPLICACION

Citar  |  
Ver mensaje      

Armando Montes
Chihuahua, México
Escrito por Armando Montes el 7 de Octubre

Felipe, aqui hay otro codigo que segun comentan funciona de maravilla:
Http://www.mrexcel.com/forum/showthread. Php? T=69718&highlight=import+65536


Citar  |  
Ver mensaje     

Arquimedes03 Sccj
Madrid, España
Escrito por Arquimedes03 Sccj el 8 de Octubre

Hola Felipe,...

A mí también me interesa mucho este tema de cómo importar archivos de texto de un gran número de filas (registros), así que le he estado dando vueltas, a ratos, este último par de días; disculpa, por ello, que haya tardado en contestarte. Mira! , he estado haciendo pruebas con los códigos que se proponen en los diferentes enlaces que mencionáis en este hilo... En el adjunto te muestro los módulos de las macros que no me han dado error; son 3 (el resto me daban algún tipo de error en tiempo de ejecución):

A) Módulo1_inicial. Módulo tal como aparece en la página del respectivo link.

B) Módulo1_modificado. El anterior retocado y "recomentado" por mí.

C) Módulo2_conADO. Módulo correspondiente a ese último link que sugiere Armando.

Las pruebas las he hecho con el txt resultante de haber extraído la primera mitad del archivo al que haces referencia (ese de tamaño aproximado de 60 Mb). En total son algo más de 86000 filas, y tamaño de unos 30 Mb. Te hago a continuación un breve comentario de los resultados que he obtenido. Ten en cuenta que lo he hecho en mi portátil, que es bastante "modestito" (supongo que, a mayor potencia de equipo, los tiempos se reducirían).

A) Importación en un nuevo libro, en dos Hojas. Tarda aproximadamente 1 minuto. Todo en la columna A (no separa los campos en columnas). Al pasar después el asistente pata Texto a Columnas a toda la columna A, se demoraba unos tres minutos para una sóla Hoja. Además, tras aplicar el asistente, aparecían algunos valores en ciertos campos que no eran los mismos que en el archivo txt. Al respecto, me sorprendió que, por más que modifiqué los parámetros en el propio asistente, nunca me salía el resultado correcto (no sé qué podré haber hecho mal al ejecutar el asistente, o si no es lo apropiado, en fin...)

B) Ahora, con el anterior módulo retocado por mí (para que en el resultado aparezcan ya los campos separados por columnas), todo ok, en el sentido de que, en el nuevo libro, los campos aparecen exactamente igual que en el archivo txt. INCONVENIENTE: el tiempo! (al haberle yo añadido el código para que separe los campos en la porpia lectura de cada fila del txt). Ya te digo que tarda muchíííísimo; a mí me llevo unos 15 minutos la impostación de ese txt de 30 Mb.

C) (el código correspondiente a ese último enlace que menciona Armando)... Con ADO. A mi modo de ver, y sobre todo en lo que a tiempo se refiere, la más apropiada; apenas tardó unos segundos. Inconveniente: tal como está planteado ese código, algunos campos se obtienen en un formato muy diferente al que presentan en el archivo txt. Lo ideal sería modificar esa macro a fin de que el resultado, en las Hojas añadidas, apareciese con las misma presentación que en las filas del txt.

---> Al respecto de esa observación que te hago en c), a mí se me escapa cómo modificar el código (aunque me pondré a ello, en breve, a ver qué tal me va). Si alguien sabe cómo retocar esa solución -la de ADO- para que de el resultado igual a cómo aparece en el archivo txt, le estaría muy agradecido, pues ya podéis deducir que estoy muy interesado en este tema, y, desde luego, que, empleando ADO, parece ser que es como más rápido se resuleve (al menos, de entre las posibles soluciones que van apareciendo en el hilo).

Saluditos!



Ficheros adjuntos:
ImportaTXTmas65536

Citar  |  
Ver mensaje     

Felipe Prado
Santiago, Chile
Escrito por Felipe Prado el 12 de Octubre

Arquimedes, habia perdido el hilo a este tema, pero analice el archivo y tus explicaciones, muchas gracias, me resulto haber distribuido el archivo en dos hojas, algo lento pero funciona que es lo importante.

muy agradecido!

vi tu otro post sobre este tema, pero parece que no ha habido respuestas o si?

saludos desde chile

Felipe


Citar  |  
Ver mensaje     

Arquimedes03 Sccj
Madrid, España
Escrito por Arquimedes03 Sccj el 12 de Octubre


Hola Felipe,...

Me alegro que volvieses a retomar esta cuestión. Mira, después de mi anterior post en este hilo, me he estado currando el código del primer enlace que se sugería (aunque ahora no estoy seguro de si es el primero o el segundo -después de las vueltas que le he dado ya-),... El que redimensiona la matriz de campos (con ReDim) y se basa en el empleo de las funciones Split y UBound. Creo que le he ganado algo de tiempo, además de no llevar mucho código (aunque me costó bastante el encajar el uso de esas funciones con el quick de las 65536 filas de una hoja, a fin de que la solución valiese para cualquier nº de filas -registros- a importar, ya fuese <655536, 65536, o >65536). Al respecto, adjunto le libro en el que planteo las posibles soluciones que cumplen con lo que se demandaba desde un principio: la importación de todo el. Txt (o del nº de filas especificado), ya sea en hojas añadidas o en un nuevo libro (eso es muy fácil de modificar), y respetando el formato original de todos los campos en el. Txt. En mi opinión, los Módulos 13 y 53 son los más indicados de usar, aunque este último (el 53, con ADO) sea un pelín más rápido, pero con el "pequeño inconveniente" comentado en la hoja.

Respecto al otro hilo, pues Abraham tuvo la amabilidad de contestar, y además con mucho detalle. En fin, no le doy más vueltas a este tema (al menos "de momento", puesto que ahora estoy profundizando en el tema de ADO, y, si tengo alguna pega, ya preguntaré en otro hilo). Espero haberte ayudado en algo, al tiempo que también a mí me ha venido muy bien.

Saluditos!



Ficheros adjuntos:
Conclusiones

Citar  |  
Ver mensaje     


Responder


Quiero recibir alertas por email cuando haya mensajes nuevos en este debate

Al escribir en el debate:
  1. Repasa la ortografía y no escribas en formato SMS.
  2. Lee el texto dos veces antes de publicar.
  3. No escribas todo en mayúsculas o negritas.
 
Páginas internacionales: España  |  Italia  |  Francia  |  México  |  Alemania  |  Reino Unido  |  Argentina  |  Chile  |  Colombia  |  USA

Búsquedas frecuentes: antritis cremas desmanchadoras justificante medico dialogos en ingles de tres personas ejercicios para motricidad fina

Emagister cumple la Ley Orgánica 15/1999 de 13 de diciembre, de Protección de datos de Carácter Personal, y posee el código de inscripción nº 2002010053 del Registro General de la Agencia de Protección de Datos. Copyright © 1999/2000 - Grupo Intercom - Todos los derechos