Hola. Si bien trabjo con excel hace tiempo, mi conocimiento sobre macros es limitado.
Mi problema es que tengo que reunir rangos de informacion distintos de varios libros distintos que estan en distintos directorios.
Los nombres de los directorios varian año a año y los nombres de los archivos mes a mes.
Tengo una macro que funciona que me recopila la informacion necesaria, pero debo modificar la macro todos los meses.
He pensado en parametrizar la macro para introducir los datos del año y mes y funcione. y el problema es que no puedo cambiar de directorio para abrir los distintos libros. (no he llegado a abrir los libros)
El archivo con la macro esta en un directorio distinto al de los libros.
Transcribo a continuacion parte de la macro, en la ultima linea se produce un error porque no ejecuto ChDir
Sub abrearchivoycopiarangodeotro()
' Sheets("Hoja1").Select
PathName = Range("R3").Value
Filename = Range("S3").Value
TabName = Range("D5").Value
MsgBox PathName
ChDir PathName
MsgBox ActiveWorkbook.Path
MsgBox Filename
Workbooks.Open Filename:=Filename
....
Como puedo hacer para que utilice los parametros que tengo en las celdas?
Desde ya agradesco la ayuda.
Hola Francisco:
Prueba con el siguiente código y nos comentas.
Sub abrearchivoycopiarangodeotro()
PathName = Range("D3").Value
Archivo = Range("D4").Value '<--- SUSTITUYE FILENAME POR ARCHIVO YA QUE EL COMANDO WORKBOOK POSEE EN
' UNO DE SUS PARAMETROS LA PALABRA FILENAME POR ESTE MOTIVO FALLABA
TabName = Range("D5").Value
Workbooks.Open PathName & "\" & Archivo
ActiveWorkbook.Sheets(TabName).Activate
End Sub
Por el otro motivo que explicabas de año y mes te pongo acontinuación como lo puedes hacer
Año = Year(Now) '<--- AÑO ACTUAL
Mes = MonthName(Month(Now)) '<--- OPCION 1: NOMBRE DEL MES COMPLETO
Mes = Month(Now) '<--- OPCION 2: NUMERO DEL MES
Tendrás que adaptarlo a tu programa para hacer lo que has pedido.
Espero te sirva
Espero te sirva
Un Saludo
Fernando