Macro que reconozca cambio de nombre de un libro

Hola tengo un libro que cambia su nombre todos los días y cuando ejecuto la macro esta se sitúa en posiciones abre otro libro llamado precios copia los precios y la pega en posiciones01, pero como esta cambia de nombre todos los días ejemplo: posiciones02 posiciones03 la única forma de referirme a ella es con Windows(2).Activate el problema es que a veces se abren libros que no están dentro de la macro y hacen que produzca error como lo arreglo. Gracias

1 respuesta

Respuesta
1
Esta es una solución posible
Sub.....
'
'
ruta = "C:\users\juan\Desktop\"
a= Range("A3")


Workbooks.Open Filename:=ruta & "posiciones" & a &".xls"
Pones después del sub y sin apostrofe la ruta, ahí es donde esta el archivo que quieres abrir, y luego en a3, o otra celda podes poner el nombre que siempre cambia, entonces cada vez que lo tenga que abrir va a buscar en la hoja en el rango a3, va a buscar el final ej 02.
Lo único fíjate que si tienes excel 2010, el final de la macro no es .xls, sino . xlsm
Saludos espero te sirva, cualquier duda preguntame
La probare mañana y te contare, ¿ahora si es excel 2003 es .xls cierto? Se que es así pero prefiero preguntarter por que esta macro es para aspecto laboral
Saludos
sorry se me olvidaba algo, ¿más qué abrir el archivo es seleccionarlo ya que ya esta abierto
por que desde posiciones ejecuto la macro
entonces como podría relacionar la activación del libro con la solución que me diste primero
porfissss?
Te hago una consulta, lo que haces es agarrar el libro posiciones original, lo guarda como posiciones01 y después hace el resto, ¿o usa el original posiciones y después lo guardas aclarame esa duda nada más?
Abro posiciones 01 lo guardo como posiciones 02 y ejecuto la macro desde posiciones 02
para hacértelo más fácil necesito esto es el código
Sheets("USD-CLP FWD").Select esta es una hoja del libro posiciones 02
Range("A2:O2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("p3:v3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Workbooks.Open ("P:\Frontoffice\Derivados FX\FWD\Posiciones\POSICIONES STAR\USD-CLP.xls")
Range("a2:o2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows(2).Activate  !!!'aqui necesito que se refiera al libro por su nombre posiciones 02
Sheets("USD-CLP FWD").Select
Range("A2").Select
ActiveSheet.Paste
Range("P2:V2").Select
Selection.Copy
Range("O2").Select
    Do Until ActiveCell.Value = Empty
    ActiveCell.Offset(1, 0).Select
    Loop
ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(-1, 0).Select
ActiveCell.Select
    If ActiveCell = Empty Then
Range("p2:v2").Select
Selection.Copy
Range("o2").Select
    Do Until ActiveCell.Value = Empty
    ActiveCell.Offset(1, 0).Select
       Loop
    ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(-1, 0).Select
ActiveSheet.Paste
celda = ActiveCell.Address
Selection.AutoFill Destination:=Range("p2:V2", celda)
    End If
Workbooks("USD-CLP.XLS").Close
Pon esto al principio
    a = Range("a3")
Y esto donde tienes el problema
    Windows(a & ".xls").Activate
Ahora recuerda, que en a3 (lo podes cambiar) tiene que estar el nombre del libro con el que vas a guardar el libro, ej posiciones02
Esta excelente me funciona perfect una duda más y no te molesto más por ejemplo si mi libro se llama posiciones fwd 03-02-¿2011 hay alguna manera de hacer lo mismo usando fechas? Para así en la casilla a3 pueda poner (como ejemplo nomas jajaja posiciones fwd =hoy()), cayendo en la fantasía . para así yo no tener que cambiar el valor de la celda a3 saludos
JAJAJA veo que quieres que excel haga todo, ok
Mira más fácil que agregarlo en la macro es agregarlo en la celda de referencia, en el caso era a3, pones lo siguiente
="posiciones fwd "&hoy()
Fíjate dejar un espacio entre fwd y la "
jjajajaja si lo que pasa es que la macro no es para mi, es para el trabajo y yo me voy en un mes jajaja tengo una duda cuando pongo lo que me sugieres me sale
Posiciones FWD 40577 y le cambio el formato a la celda por fecha y sigue = obviamente la macro me arroja error toy trabajando con excel 2003 habrá alguna solución, si no hay lo hago como me dijiste antes saludos y muchas gracias
Prueba con esta fórmula
="posiciones fwd "&texto(hoy();"dd-mm-yyyy")
Con esto se te tiene que solucionar el problema

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas