Macro que copia datos de archivos: error al usarlo el libro de macros Personal

Elsa Matilde y Dante:

Copiando de otras macros que les he visto, desarrollé la macro adjunta para copiar datos de varios archivos a distintas hojas de un libro Excel, siempre desde y hacia las mismas ubicaciones. Grabé la macro en el archivo de destino y me funcionó perfectamente pero, al copiarla al libro de macros Personal y aplicar el código, falla: me sale un 'error 9' subíndice fuera del intervalo y no he logrado entender qué pasa. Les agradeceré su ayuda

https://dl.dropboxusercontent.com/u/40374840/Error%20en%20macro.zip 

Esta es la macro simplificada para copiar de 2 libros

Sub CopiaDatos()

'Definir objetos a utilizar
Dim Base, Ruta, Origen, Destino, Rol As String
Dim wbOrigen, wbDestino As Workbook
Dim wsDestino As Excel.Worksheet
Dim rngDestino As Excel.Range
Dim n As Integer

Base = "C:\Users\JuanCarlos\Documents"
Ruta = Base & "\"
Set wbDestino = ThisWorkbook
Rol = Sheets("Coprop").Range("A1")
n = 1
'----------------------------------------
1
' Copropiedad

Set wsDestino = wbDestino.Worksheets("Coprop")
Origen = Rol & " DatosCoprInmueble.xlsx"
GoTo Proceso
'
2
' Manzana

Set wsDestino = wbDestino.Worksheets("Mz")
Origen = Rol & " DatosMz.xlsx"
GoTo Proceso
'----------------------------------------
Proceso:
' Indicar la celda de destino
Const celdaDestino = "A11"
' Inicializar el rangos de destino
Set rngDestino = wsDestino.Range(celdaDestino)
'
'Indicar el libro de Origen
If Dir(Ruta & Origen) = "" Then
MsgBox (Origen & " NO encontrado")
GoTo siguiente
End If
' Abre archivo y copia datos
Workbooks.Open Ruta & Origen
Range("A2").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
'Pegar datos en celda destino
rngDestino.PasteSpecial xlPasteValues
Application.CutCopyMode = False
' Cierra archivo Origen
Windows(Origen).Activate
ActiveWindow.Close
siguiente:
n = n + 1
If n = 2 Then GoTo 2
End Sub

1 Respuesta

Respuesta
1

Ya encontré el error:

Set wbDestino = ThisWorkbook       se aplica al mismo libro que contiene la macro

Hay que reemplazarlo por

Set wbDestino = ActiveWorkbook

Ahí funciona OK

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas