Ver Mensaje Individual
  #4 (permalink)  
Antiguo 09/05/2011, 15:46
Stackado
 
Fecha de Ingreso: junio-2009
Mensajes: 75
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Simplificar el cidogo de una macro realizada con el grabador de macros

Hola,

Eh tratado lo que me comentas pero la verdad casi no te eh entendido ademas lo que necesito es que la ruta no cambie y que solo tenga que cambiar los nombres de las tablas, verás tratando de simplificar la ruta para hacer referencia solo a la carpeta donde se encuentran las tablas y así en cada hola solo cambiar el nombre de la carpeta que deba trabajar, me topo con que no me permite hacerlo, al momento de ejecutar la macro me lanza:

"' 'EMBARQUES_SAE\clientes.DBF' no es una ruta de acceso válida.
Asegúrese de que la ruta está escrita correctamente y que está
conectado al servidor donde se encuentra el archivo."

Cosa la cual no entiendo ya que el archivo Excel y la carpeta donde estan las tablas estan juntas :(, esquemáticamente hablando, están de la siguiente forma:

Proyectos
|___Tabla clientes.xlsm
|___EMBARQUES_SAE
|__clientes.DBF
|__gondolas.dbf
|__recamiones.dbf
|__regondolas.dbf
donde EMBARQUES_SAE es la carpeta que contiene las tablas,

Código vb:
Ver original
  1. Sub Macro_exportación()
  2. 'Macro_exportación Macro para extraer
  3. 'información de tabla clientes
  4. With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
  5. "ODBC;CollatingSequence=ASCII;DBQ=EMBARQUES_SAE\clientes.DBF" _
  6. ), Array( _
  7. ";DefaultDir=EMBARQUES_SAE" _
  8. ), Array( _
  9. ";Deleted=0;Driver={Driver do Microsoft dBase (*.dbf)};DriverId=277;FIL=dBase IV;MaxBufferSize=2048;MaxScanRow" _
  10. ), Array( _
  11. "s=8;PageTimeout=5;SafeTransactions=0;Statistics=0;Threads=3;UID=admin;UserCommitSync=Yes;" _
  12. )), Destination:=Range("$A$1")).QueryTable

Pero eso no entiendo eso de la conexión a ODBC, quizás tengo un error de sintaxis pero la verdad no logro encontrarlo, el error me lo marca en las rutas precisamente.

Última edición por Stackado; 09/05/2011 a las 16:03