Ver Mensaje Individual
  #8 (permalink)  
Antiguo 24/04/2007, 04:59
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
Sonrisa Re: Necesito hacer una macro...AYUDA PORFAVOR

Hola !
He realizado unos ligeros cambios a tu código como para que cumpla sus fines:
Código:
Sub Copia()
'variables
Dim i As Integer, Destino As Range
'Abro el libro destino
    Workbooks.Open ("C:\Archivo back.xls")
    Application.ScreenUpdating = False
'Asigno el nombre 'Destino' a un rango
    Set Destino = Range("A65536")
'La i es el numero que ira aumentando:
'archivo1.xls , archivo2.xls etc en la ubicacion C
    Do While Dir("C:\Archivo" & (i + 1) & ".xls") <> ""
        i = i + 1
        Workbooks.Open ("C:\Archivo" & i & ".xls")
'Copio y pego los valores
        Range("A2:M2").Copy _
            Destination:=Destino.End(xlUp).Offset(1, 0)
'Cierro y salvo lo necesario
        ActiveWorkbook.Close False
    Loop
    Application.ScreenUpdating = True
    Set Destino = Nothing
End Sub
a) Application.ScreenUpdating = False/True
Desactiva la actualización de la pantalla para acelerar el código de la macro.

b) Workbooks.Open ("C:\Archivo back.xls")
Se ejecuta UNA SOLA VEZ al comienzo y se deja abierto para ir agregando las sucesivas líneas.

c) Dir("C:\Archivo" & (i + 1) & ".xls")
Dudo que tengas 100 archivos de la forma Archivo'i'.xls de modo que cuando se detecte que se interrumpe la correlatividad, el "loop" se detiene

d) Set Destino = Range("A65536")
'Destino' deja de ser un "string" para ser un rango. Así, no se requiere especificar (está implícito, en realidad) 'Workbooks' ni 'Sheets'.

Pruébalo y después nos cuentas como te resultó.
Saludos

Última edición por mrocf; 24/04/2007 a las 05:22