Ver Mensaje Individual
  #8 (permalink)  
Antiguo 12/05/2011, 10:05
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,

El problema quedo resuelto, solo tenia que hacer referencia al libro de trabajo completo y no solo dejar la carpeta.

El código de la macro seria de la siguiente forma.


Código vb:
Ver original
  1. Sub Macro_exportación()
  2. ' Macro_exportación Macro
  3. ' Para la tabla clientes.
  4. With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
  5. "ODBC;CollatingSequence=ASCII;DBQ=" & ThisWorkbook.Path & "\EMBARQUES_SAE;" _
  6.         ), Array( _
  7.         "DefaultDir=" & ThisWorkbook.Path & "\EMBARQUES_SAE;Deleted=0" _
  8.         ), Array( _
  9.         ";Driver={Driver do Microsoft dBase (*.dbf)};DriverId=277;FIL=dBase IV;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0" _
  10.         ), Array("Statistics=0;Threads=3;UID=admin;UserCommitSync=Yes;")), _
  11.         Destination:=Range("$A$2")).QueryTable
  12.         .CommandText = "SELECT clientes.NUM, clientes.NOMB, clientes.CP, clientes.RFC FROM clientes clientes ORDER BY clientes.NUM, clientes.NOMB, clientes.RFC"
  13.         .RowNumbers = False
  14.         .FillAdjacentFormulas = False
  15.         .PreserveFormatting = True
  16.         .RefreshOnFileOpen = False
  17.         .BackgroundQuery = True
  18.         .RefreshStyle = xlInsertDeleteCells
  19.         .SavePassword = False
  20.         .SaveData = True
  21.         .AdjustColumnWidth = True
  22.         .RefreshPeriod = 0
  23.         .PreserveColumnInfo = True
  24.         .ListObject.DisplayName = "Tabla_Consulta_desde_tabla_clientes"
  25.         .Refresh BackgroundQuery:=False
  26. End With
  27. End Sub

Donde:

Código vb:
Ver original
  1. DBQ=" & ThisWorkbook.Path & "\EMBARQUES_SAE;
  2. DefaultDir=" & ThisWorkbook.Path & "\EMBARQUES_SAE

Es donde hacemos referencia desde donde esta el archivo principal de Excel..

Quiero agradezer tanto su ayuda como su paciencia a los que me ofrecieron sus respuestas, la verdad programando soy muy malo y nunca había programado en macros así que no entendía tanto las sintaxis como las limitaciones y propiedades de los archivos, sin ustedes no lo hubiera logrado.

Saludos.