Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/05/2011, 20:21
Avatar de mrocf
mrocf
 
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
Simplificar el cidogo de una macro realizada con el grabador de macros

Entiendo que tu problema está en esta parte del código:
Código PHP:
With ActiveSheet.ListObjects.Add(SourceType:=0_
Source
:=Array(Array("ODBC;CollatingSequence=ASCII;" "DBQ=" _
"C:\USERS\ABRAHAM\DOCUMENTS\ESCUELA Y PRACTICAS PROFESIONALES\PROYECTOS PEÑA\INTERFAZ SAE\RV SISTEMA" _
), Array(" DE EMBARQUES SAE;DefaultDir=" _
"C:\USERS\ABRAHAM\DOCUMENTS\ESCUELA Y PRACTICAS PROFESIONALES\PROYECTOS PEÑA\INTERFAZ SAE\RV SISTEM" _
), Array("A DE EMBARQUES SAE;Deleted=0;Driver={Driver do Microsoft dBase (*.dbf)};DriverId=277;" _
"FIL=dBase IV;MaxBufferSize=2048;MaxScanRow"), Array("s=8;PageTimeout=5;SafeTransactions=0;" _
"Statistics=0;Threads=3;UID=admin;UserCommitSync=Yes;")), Destination:=Range("$A$1")).QueryTable 
1º) Nota que aprovechando que se trata de una línea de código muy larga, la he subdividido en varios tramos.
¿Primera comprobación a realizar?... Verifica que de este modo el código sigue funcionando adecuadamente.

2º) El problema de lo que llamas "rutas relativas / estáticas" estaría dado por estas dos expresiones:

C:\USERS\ABRAHAM\DOCUMENTS\ESCUELA Y PRACTICAS PROFESIONALES\PROYECTOS PEÑA\INTERFAZ SAE\RV SISTEMA
y
C:\USERS\ABRAHAM\DOCUMENTS\ESCUELA Y PRACTICAS PROFESIONALES\PROYECTOS PEÑA\INTERFAZ SAE\RV SISTEM

Difieren en una letra, por lo que no sé decirte si es lo correcto o así está bien.

3º) En todo caso, ¿cómo lo solucionas?... Pues mira lo siguiente que es equivalente a lo que tienes:

Código PHP:
Dim Ruta1 As StringRuta2 As String
Ruta1 
"C:\USERS\ABRAHAM\DOCUMENTS\ESCUELA Y PRACTICAS PROFESIONALES\PROYECTOS PEÑA\INTERFAZ SAE\RV SISTEMA"
Ruta2 "C:\USERS\ABRAHAM\DOCUMENTS\ESCUELA Y PRACTICAS PROFESIONALES\PROYECTOS PEÑA\INTERFAZ SAE\RV SISTEM"

With ActiveSheet.ListObjects.Add(SourceType:=0_
Source
:=Array(Array("ODBC;CollatingSequence=ASCII;" "DBQ=" Ruta1 _
), Array(" DE EMBARQUES SAE;DefaultDir=" Ruta2 _
), Array("A DE EMBARQUES SAE;Deleted=0;Driver={Driver do Microsoft dBase (*.dbf)};DriverId=277;" _
"FIL=dBase IV;MaxBufferSize=2048;MaxScanRow"), Array("s=8;PageTimeout=5;SafeTransactions=0;" _
"Statistics=0;Threads=3;UID=admin;UserCommitSync=Yes;")), Destination:=Range("$A$1")).QueryTable 
Como ya debes haber advertido, el problema se circunscribe -ahora- a definir correctamente "Ruta1" y "Ruta2": ¡pero eso es lo más sencillo!.

¿Te sirve la idea?
Saludos, Cacho.