cambiar de directorio y de libro desde parametros especificados en celdas

2 envíos / 0 nuevos
Último envío
Francisco
Imagen de Francisco
Offline
última acción: Hace 3 meses 2 semanas
alta: 28/12/2019 - 03:42
Puntos: 25
cambiar de directorio y de libro desde parametros especificados en celdas

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.

 

 

 

Etiquetas: 

FernandoML
Imagen de FernandoML
Offline
última acción: Hace 1 día 13 horas
alta: 01/02/2018 - 19:53
Puntos: 155
Hola Francisco:Prueba con el

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