Captura masiva de datos.

08/02/2006 - 16:49 por Adolfo | Informe spam
Hola gente,
Les cuento mi problema, estoy intentando cargar los datos de un archivo
excel en otro archivo excel, lo quiero hacer sin tener que abrir el primero,
por lo tanto la única opción que se me ocurre es a traves del apartado
"Obtener datos externos". Hasta aqui todo bien, el problema radica en que
esta operación la tengo que hacer con los datos de unos 150 archivos que
estan en un directorio. Mi idea era crear un bucle que me lea todos los
nombres de los archivos de ese directorio y que me fuese cargando los datos
de los mismos en el archivo que yo quiera. Como no se cuál es el código
necesario he utilizado el grabador de macros para ver como lo hace excel y
parte del mismo es el que muestro a continuación.

With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=C:\Documents and
Settings\Administrador\Mis documentos\facturas.xls;DefaultDir=C:\Documents
and Settings\Ad" _
), Array( _

El código funciona correctamente el único problema es que no se como hacer
para modificar la ruta de acceso al archivo. Entiendo que es ""DSN=Excel
Files;DBQ=C:\Documents and Settings\Administrador\Mis
documentos\facturas.xls"" pero no me deja cambiar la ruta a traves de
variables, por ejemplo DSN=Excel Files;DBQ=C:\Documents and
Settings\Administrador\Mis documentos\VARIABLE Donde variable sería el
nombre del archivo.

¿Qué es lo que estoy haciendo mal?

Saludos,
Adolfo

Preguntas similare

Leer las respuestas

#1 morrfo
08/02/2006 - 23:55 | Informe spam
¿La variable la estas concatenando a la cadena de texto?

"Adolfo" escribió:

Hola gente,
Les cuento mi problema, estoy intentando cargar los datos de un archivo
excel en otro archivo excel, lo quiero hacer sin tener que abrir el primero,
por lo tanto la única opción que se me ocurre es a traves del apartado
"Obtener datos externos". Hasta aqui todo bien, el problema radica en que
esta operación la tengo que hacer con los datos de unos 150 archivos que
estan en un directorio. Mi idea era crear un bucle que me lea todos los
nombres de los archivos de ese directorio y que me fuese cargando los datos
de los mismos en el archivo que yo quiera. Como no se cuál es el código
necesario he utilizado el grabador de macros para ver como lo hace excel y
parte del mismo es el que muestro a continuación.

With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=C:\Documents and
Settings\Administrador\Mis documentos\facturas.xls;DefaultDir=C:\Documents
and Settings\Ad" _
), Array( _

El código funciona correctamente el único problema es que no se como hacer
para modificar la ruta de acceso al archivo. Entiendo que es ""DSN=Excel
Files;DBQ=C:\Documents and Settings\Administrador\Mis
documentos\facturas.xls"" pero no me deja cambiar la ruta a traves de
variables, por ejemplo DSN=Excel Files;DBQ=C:\Documents and
Settings\Administrador\Mis documentos\VARIABLE Donde variable sería el
nombre del archivo.

¿Qué es lo que estoy haciendo mal?

Saludos,
Adolfo



Respuesta Responder a este mensaje
#2 Adolfo
09/02/2006 - 08:25 | Informe spam
El problema es ¿como la concateno?
Puedo partir toda la cadena de conexion en los trozos que quiera y despues
concatenarlos uno a uno, por ejemplo:
Conn= "ODBC;DSN=Excel Files;DBQ=C:\Documents and Settings\Administrador\Mis
documentos\"
Conn= Conn & "Facturas.xls"

Mi problema es que donde pongo el archivo Facturas.xls no puedo poner una
variable porque lo tengo que poner entre comillas y no me lo reconoce como
variable.

Un saludo,
Adolfo

"morrfo" escribió en el mensaje
news:
¿La variable la estas concatenando a la cadena de texto?

"Adolfo" escribió:

> Hola gente,
> Les cuento mi problema, estoy intentando cargar los datos de un archivo
> excel en otro archivo excel, lo quiero hacer sin tener que abrir el


primero,
> por lo tanto la única opción que se me ocurre es a traves del apartado
> "Obtener datos externos". Hasta aqui todo bien, el problema radica en


que
> esta operación la tengo que hacer con los datos de unos 150 archivos que
> estan en un directorio. Mi idea era crear un bucle que me lea todos los
> nombres de los archivos de ese directorio y que me fuese cargando los


datos
> de los mismos en el archivo que yo quiera. Como no se cuál es el código
> necesario he utilizado el grabador de macros para ver como lo hace excel


y
> parte del mismo es el que muestro a continuación.
>
> With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
> "ODBC;DSN=Excel Files;DBQ=C:\Documents and
> Settings\Administrador\Mis


documentos\facturas.xls;DefaultDir=C:\Documents
> and Settings\Ad" _
> ), Array( _
>
> El código funciona correctamente el único problema es que no se como


hacer
> para modificar la ruta de acceso al archivo. Entiendo que es ""DSN=Excel
> Files;DBQ=C:\Documents and Settings\Administrador\Mis
> documentos\facturas.xls"" pero no me deja cambiar la ruta a traves de
> variables, por ejemplo DSN=Excel Files;DBQ=C:\Documents and
> Settings\Administrador\Mis documentos\VARIABLE Donde variable sería el
> nombre del archivo.
>
> ¿Qué es lo que estoy haciendo mal?
>
> Saludos,
> Adolfo
>
>
>
Respuesta Responder a este mensaje
#3 KL
09/02/2006 - 12:14 | Informe spam
Hola Adolfo,

Prueba lo siguiente:

Ruta = CreateObject("WScript.Shell").SpecialFolders("Mydocuments")
Archivo="facturas.xls"

With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & Ruta & "\" & Archivo & ";DefaultDir=" & Ruta _
), Array( _

Y ademas puedes echar un vistazo a la siguiente conversacion que aunque trata con archivos de texto te puede dar algunas pistas mas:

http://tinyurl.com/86rty

Saludos,
KL


"Adolfo" wrote in message news:
El problema es ¿como la concateno?
Puedo partir toda la cadena de conexion en los trozos que quiera y despues
concatenarlos uno a uno, por ejemplo:
Conn= "ODBC;DSN=Excel Files;DBQ=C:\Documents and Settings\Administrador\Mis
documentos\"
Conn= Conn & "Facturas.xls"

Mi problema es que donde pongo el archivo Facturas.xls no puedo poner una
variable porque lo tengo que poner entre comillas y no me lo reconoce como
variable.

Un saludo,
Adolfo

"morrfo" escribió en el mensaje
news:
¿La variable la estas concatenando a la cadena de texto?

"Adolfo" escribió:

> Hola gente,
> Les cuento mi problema, estoy intentando cargar los datos de un archivo
> excel en otro archivo excel, lo quiero hacer sin tener que abrir el


primero,
> por lo tanto la única opción que se me ocurre es a traves del apartado
> "Obtener datos externos". Hasta aqui todo bien, el problema radica en


que
> esta operación la tengo que hacer con los datos de unos 150 archivos que
> estan en un directorio. Mi idea era crear un bucle que me lea todos los
> nombres de los archivos de ese directorio y que me fuese cargando los


datos
> de los mismos en el archivo que yo quiera. Como no se cuál es el código
> necesario he utilizado el grabador de macros para ver como lo hace excel


y
> parte del mismo es el que muestro a continuación.
>
> With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
> "ODBC;DSN=Excel Files;DBQ=C:\Documents and
> Settings\Administrador\Mis


documentos\facturas.xls;DefaultDir=C:\Documents
> and Settings\Ad" _
> ), Array( _
>
> El código funciona correctamente el único problema es que no se como


hacer
> para modificar la ruta de acceso al archivo. Entiendo que es ""DSN=Excel
> Files;DBQ=C:\Documents and Settings\Administrador\Mis
> documentos\facturas.xls"" pero no me deja cambiar la ruta a traves de
> variables, por ejemplo DSN=Excel Files;DBQ=C:\Documents and
> Settings\Administrador\Mis documentos\VARIABLE Donde variable sería el
> nombre del archivo.
>
> ¿Qué es lo que estoy haciendo mal?
>
> Saludos,
> Adolfo
>
>
>




Respuesta Responder a este mensaje
#4 Adolfo
13/02/2006 - 09:10 | Informe spam
Hola KL
Lo que necesito es que cuando defino el nombre del archivo lo pueda hacer
con una variable, por ejemplo

Archivo=Range("A1").value

La idea es crear un bucle y que me valla varios archivos.

Lo de que sea un archivo texto tampoco presenta problemas, al final los
datos se pueden presentar en cualquier formato, seguramente seran texto (por
aquello de evitar los virus y de reducir el espacio)

Miro lo que me has enviado y ya os cuento.

Saludos,
Adolfo

"KL" escribio en el mensaje
news:%
Hola Adolfo,

Prueba lo siguiente:

Ruta = CreateObject("WScript.Shell").SpecialFolders("Mydocuments")
Archivo="facturas.xls"

With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=" & Ruta & "\" & Archivo &


";DefaultDir=" & Ruta _
), Array( _

Y ademas puedes echar un vistazo a la siguiente conversacion que aunque


trata con archivos de texto te puede dar algunas pistas mas:

http://tinyurl.com/86rty

Saludos,
KL


"Adolfo" wrote in message


news:
> El problema es ¿como la concateno?
> Puedo partir toda la cadena de conexion en los trozos que quiera y


despues
> concatenarlos uno a uno, por ejemplo:
> Conn= "ODBC;DSN=Excel Files;DBQ=C:\Documents and


Settings\Administrador\Mis
> documentos\"
> Conn= Conn & "Facturas.xls"
>
> Mi problema es que donde pongo el archivo Facturas.xls no puedo poner


una
> variable porque lo tengo que poner entre comillas y no me lo reconoce


como
> variable.
>
> Un saludo,
> Adolfo
>
> "morrfo" escribió en el mensaje
> news:
>> ¿La variable la estas concatenando a la cadena de texto?
>>
>> "Adolfo" escribió:
>>
>> > Hola gente,
>> > Les cuento mi problema, estoy intentando cargar los datos de un


archivo
>> > excel en otro archivo excel, lo quiero hacer sin tener que abrir el
> primero,
>> > por lo tanto la única opción que se me ocurre es a traves del


apartado
>> > "Obtener datos externos". Hasta aqui todo bien, el problema radica en
> que
>> > esta operación la tengo que hacer con los datos de unos 150 archivos


que
>> > estan en un directorio. Mi idea era crear un bucle que me lea todos


los
>> > nombres de los archivos de ese directorio y que me fuese cargando los
> datos
>> > de los mismos en el archivo que yo quiera. Como no se cuál es el


código
>> > necesario he utilizado el grabador de macros para ver como lo hace


excel
> y
>> > parte del mismo es el que muestro a continuación.
>> >
>> > With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
>> > "ODBC;DSN=Excel Files;DBQ=C:\Documents and
>> > Settings\Administrador\Mis
> documentos\facturas.xls;DefaultDir=C:\Documents
>> > and Settings\Ad" _
>> > ), Array( _
>> >
>> > El código funciona correctamente el único problema es que no se como
> hacer
>> > para modificar la ruta de acceso al archivo. Entiendo que es


""DSN=Excel
>> > Files;DBQ=C:\Documents and Settings\Administrador\Mis
>> > documentos\facturas.xls"" pero no me deja cambiar la ruta a traves de
>> > variables, por ejemplo DSN=Excel Files;DBQ=C:\Documents and
>> > Settings\Administrador\Mis documentos\VARIABLE Donde variable sería


el
>> > nombre del archivo.
>> >
>> > ¿Qué es lo que estoy haciendo mal?
>> >
>> > Saludos,
>> > Adolfo
>> >
>> >
>> >
>
>

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida