Ayuda Macro

06/04/2009 - 19:32 por karlos | Informe spam
hola a todos, les queria pedir ayuda con una macro.

tengo esta macro, no estoy muy seguro que este 100% buena y ademas
necesito hacer la misma pero que abra los
archivos de una carpeta especifica, que no es la misma donde se
encuentra el archivo.
necesito saber que hay que cambiar.

la carpeta donde se encuentra el archivo se llama terminados y la
direccion completa es : ( \
\RECEPCION\Documentos c\Balanced ScoreCard LW\Control de Proyectos
\proyectos\Terminados)
y el archivo donde esta la macro se llama proyectos ( uno mas arriba)



Sub gen_lista()

Range("B7:g134").Select
Selection.ClearContents

ChDir (ActiveWorkbook.Path)
ruta = ActiveWorkbook.Path
nonfic = ActiveWorkbook.Name
arch = Dir("*.xls")
fil = 1


Application.ScreenUpdating = False
Do Until arch = ""
If arch = nonfic Then GoTo Salto
Workbooks.Open Filename:=arch, UpdateLinks:=0

Windows(arch).Activate

Sheets("avance").Select
Range("A1").Copy
Windows(nonfic).Activate
uf = Range("b65536").End(xlUp).Row + 1
Range("b" & uf).PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False



Windows(arch).Activate

Sheets("avance").Select
Range("b8").Copy
Windows(nonfic).Activate
uf = Range("c65536").End(xlUp).Row + 1
Range("d" & uf).PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False




Windows(arch).Activate

Sheets("avance").Select
Range("b4").Copy
Windows(nonfic).Activate
uf = Range("e65536").End(xlUp).Row + 1
Range("f" & uf).PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

Windows(arch).Activate

Sheets("avance").Select
Range("b5").Copy
Windows(nonfic).Activate
uf = Range("c65536").End(xlUp).Row + 1
Range("g" & uf).PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

Windows(arch).Activate

Sheets("avance").Select
Range("b6").Copy
Windows(nonfic).Activate
uf = Range("c65536").End(xlUp).Row + 1
Range("e" & uf).PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

Windows(arch).Activate

Sheets("avance").Select
Range("b7").Copy
Windows(nonfic).Activate
uf = Range("c65536").End(xlUp).Row + 1
Range("c" & uf).PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False



Windows(arch).Activate
ActiveWorkbook.Close (0)
Salto:
arch = Dir
Loop

MsgBox ("Importación Lista")

End Sub


muchas gracias

saludos

Preguntas similare

Leer las respuestas

#6 karlos
05/05/2009 - 21:25 | Informe spam
me funciono perfecto cuando especifico ruta, pero me falla cuando el
archivo esta en la misma carpeta que los otros doc.
Ruta = ThisWorkbook.Path

me sale el siguiente error "1004" y dice:
una formula de esta hoja de calculo contiene una o mas referencias no
validas.
compruebe que las formulas contienen una ruta de acceso, un libro, un
nombre del rango y una referencia de caldas validas
y se detiene en la funcion específicamente en " Range(Celda).Range
("a1").Address(, , xlR1C1))"

cual podria ser la variacion a la formula para que se pueda hacer
esto ??

muchas gracias y disculpa las molestias
saludos
Respuesta Responder a este mensaje
#7 Héctor Miguel
05/05/2009 - 22:03 | Informe spam
hola, !

me funciono perfecto cuando especifico ruta, pero me falla cuando el archivo esta en la misma carpeta que los otros doc.
Ruta = ThisWorkbook.Path
me sale el siguiente error "1004" y dice: una formula de esta hoja de calculo contiene una o mas referencias no validas.
compruebe que las formulas contienen una ruta de acceso, un libro, un nombre del rango y una referencia de caldas validas
y se detiene en la funcion específicamente en " Range(Celda).Range("a1").Address(, , xlR1C1))"
cual podria ser la variacion a la formula para que se pueda hacer esto ??



(probablemente) se debe a que estas consultando TODOS los *.xls de la carpeta incuyendo al libro con la macro
esto podria ocasionar una infraccion de uso compartido :-(
prueba cambiando en el bucle del procedimiento +/- a lo siguiente:

Do While Archivo <> ""
If Dir(Archivo) = ThisWorkbook.Name Then GoTo ElQueSigue
nFila = Range("b65536").End(xlUp).Row + 1
For n = LBound(Celda) To UBound(Celda)
Range(colDest(n) & nFila) = LeerArchivoCerrado(Ruta, Archivo, Hoja, CStr(Celda(n)))
Next
ElQueSigue:
Archivo = Dir()
Loop

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida