Datos para macro

02/04/2007 - 20:16 por Oszkar M^ | Informe spam
Hola amigos del foro, mi inquietud es la siguiente:

Tengo una macro que hace ciertas operaciones apartir de un archivo de excel
ubicado en una carpeta determinada; sin embargo, el archivo va cambiando
(cada mes es un archivo diferente). Lo que deseo saber es si es posible que
la macro tome el nombre del archivo a partir de una celda en excel. Por
ejemplo, con este código:


Sub Macro1()
'
ChDir "C:\Documents and Settings\Propietario\Escritorio"
Workbooks.Open Filename:= _
"C:\Documents and Settings\Propietario\Escritorio\Archivo_Enero.xls"
Range("A38:C50").Select
Selection.Copy
Windows("LibroMacro.xls").Activate
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A1").Select
Windows("Archivo_Enero.xls").Activate
Application.CutCopyMode = False
ActiveWindow.Close
End Sub

Es posible que la tercera linea, donde esta el nombre del archivo
("C:\Documents and Settings\Propietario\Escritorio\Archivo_Enero.xls"), tome
su valor de alguna celda del archivo "LibroMacro.xls", de tal forma que si yo
cambio el nombre y la ruta del archivo en dicha celda, la macro funcione con
el nuevo archivo especificado?.

Muchas gracias por su atención y su ayuda.

Saludos,

Oszkar M^
Sevilla - España
 

Leer las respuestas

#1 Héctor Miguel
02/04/2007 - 20:56 | Informe spam
hola, Oszkar !

si suponemos que la celda donde vas a poner ruta y nombre del archivo es 'A1'
y que la celda donde vas a copiar [y obviamente 'su' hoja] ya esta/n previamente seleccionada/s [o 'activa/s']
prueba con las siguientes lineas...

Sub Traer_valores()
With ActiveCell
Workbooks.Open .Parent.Range("a1")
.Resize(13, 3) = Range("a38:c50").Value
End With
ActiveWorkbook.Close
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
Mostrar la cita

Preguntas similares