Re: Abrir fichero usando una macro

07/09/2005 - 11:15 por jcr | Informe spam
GRACIAS KL.

Pero desafortunadamente no funcionó. Quizá me he explicado mal.

La ruta la tengo en la celda A4 de la "hoja1" así:

=CONCATENAR("'";F4;"\";G4;"\";H4;"\";I4;"\";J4;"\";K4;"\";L4;".xls")

lo que me muestra la ruta de dónde está el fichero
'C:\Misdocumentos\JCR\Liq\2005\0805\m0805.xls que tengo que abrir para que
la función INDIRECTO funcione.

Por ejemplo, como cada mes la ruta y el fichero va a cambiar, por ejemplo de
0805 a 0905 para Septiembre es por esto que tengo que tener la macro
referenciada a la celda A4 y asi la macro me abrirá el fichero
correspondiente.

Muchas gracias de nuevo y espero tu respuesta.

Saludos

j c r .


Hola jcr,

Prueba con esto (cambia el nombre de hoja como proceda):

Private Sub Workbook_Open()
Dim Archivo As String, Check As String
Archivo = Sheets("Hoja1").Range("A4")
If UCase(Archivo) Like "*:\*.XLS" Then
Check = Dir(Sheets("Sheet1").Range("A4").Value)
If Check <> "" Then Workbooks.Open Archivo
End If
End Sub


Saludos,
KL


"jcr" <julitoros@hotmail.com> wrote in message
news:uT2IPJ4sFHA.1472@TK2MSFTNGP15.phx.gbl...

GRACIAS KL.

Me ha servido mucho.

Pero tengo otra pregunta. Como la función indirecto lo que me está
haciendo
es referiar una celda del otro fichero, pero la ruta de la celda está
hecha
con la función CONCATENAR porque el fichero cambia de nombre mensualmente,
así que necesito cambiar el nombre cada mes con lo que la ruta cambiará
también.

Puedo adherirle algo a la macro para que tome la ruta que he creado (en la
Celda A4) y que cambia cada mes ?

Gracias de nuevo y espero tu respuesta.

Saludos



Hola jcr,

1) abre el archivo que contiene la formula que usa la funcion INDIRECTO
2) haz clic-derecho sobre el pequeno icono de Excel a la izquierda del
menu
Archivo
3) Elige la opcion Ver Codigo para abrir el editor VBA.
4) En la ventana mas grande a la derecha pega el codigo que te pongo a
continuacion sustituyendo la ruta y el nombre del archivo con los que
procedan:

Private Sub Workbook_Open()
Workbooks.Open "c:\micarpeta\Libro1.xls"
End Sub

5) Ahora pulsa Alt+F11 para volver a la hoja.
6) Guarda los cambios y cierra el archivo
7) Vuelve a abrir el archivo

Lo siguiente no es respuesta directa a tu solicitud, pero podrias revisar
este enlace para ver las alternativas al uso de la funcion INDIRECTO:



http://groups.google.com/group/micr...nctions/ms

g/ac443753560f0075?dmode=source&hl=en

Saludos,
KL

"jcr" <julitoros@hotmail.com> wrote in message
news:ulrOoGwsFHA.2792@tk2msftngp13.phx.gbl...

Hola a todos,

Tengo un problema. Como se que al usar la función INDIRECTO para
referenciar
una celda de otro fichero de excel es necesario abrir antes el fichero
correpondiente para que se active la función, necesitaría saber si con
una
macro puedo abrir antes el fichero referenciado y asi si funcionaria la
función INDIRECTO. No tengo mucha experiencia en macro asi que si me
pueden
ayudar con los comandos sería muy bueno.

Saludos ...

j c r .








 

Leer las respuestas

#1 KL
07/09/2005 - 11:27 | Informe spam
Hola jcr,

Creo que te has explicado bien, solo has olvidado mencionar que a la ruta le
anades un apostrofe (') al principio.

Prueba esto:

Private Sub Workbook_Open()
Dim Archivo As String, Check As String
Archivo = Replace(Sheets("Hoja1").Range("A4"), "'", "")
If UCase(Archivo) Like "*:\*.XLS" Then
Check = Dir(Sheets("Sheet1").Range("A4").Value)
If Check <> "" Then Workbooks.Open Archivo
Else
MsgBox "No se ha encontrado el archivo buscado." & _
Chr(13) & "Comprueba si la ruta y el nombre del" & _
Chr(13) & "archivo son correctos."

End If
End Sub


Saludos,
KL


"jcr" wrote in message
news:uT6$
GRACIAS KL.

Pero desafortunadamente no funcionó. Quizá me he explicado mal.

La ruta la tengo en la celda A4 de la "hoja1" así:

=CONCATENAR("'";F4;"\";G4;"\";H4;"\";I4;"\";J4;"\";K4;"\";L4;".xls")

lo que me muestra la ruta de dónde está el fichero
'C:\Misdocumentos\JCR\Liq\2005\0805\m0805.xls que tengo que abrir para que
la función INDIRECTO funcione.

Por ejemplo, como cada mes la ruta y el fichero va a cambiar, por ejemplo
de
0805 a 0905 para Septiembre es por esto que tengo que tener la macro
referenciada a la celda A4 y asi la macro me abrirá el fichero
correspondiente.

Muchas gracias de nuevo y espero tu respuesta.

Saludos

j c r .


Hola jcr,

Prueba con esto (cambia el nombre de hoja como proceda):

Private Sub Workbook_Open()
Dim Archivo As String, Check As String
Archivo = Sheets("Hoja1").Range("A4")
If UCase(Archivo) Like "*:\*.XLS" Then
Check = Dir(Sheets("Sheet1").Range("A4").Value)
If Check <> "" Then Workbooks.Open Archivo
End If
End Sub


Saludos,
KL


"jcr" wrote in message
news:
GRACIAS KL.

Me ha servido mucho.

Pero tengo otra pregunta. Como la función indirecto lo que me está
haciendo
es referiar una celda del otro fichero, pero la ruta de la celda está
hecha
con la función CONCATENAR porque el fichero cambia de nombre
mensualmente,
así que necesito cambiar el nombre cada mes con lo que la ruta cambiará
también.

Puedo adherirle algo a la macro para que tome la ruta que he creado (en
la
Celda A4) y que cambia cada mes ?

Gracias de nuevo y espero tu respuesta.

Saludos



Hola jcr,

1) abre el archivo que contiene la formula que usa la funcion INDIRECTO
2) haz clic-derecho sobre el pequeno icono de Excel a la izquierda del
menu
Archivo
3) Elige la opcion Ver Codigo para abrir el editor VBA.
4) En la ventana mas grande a la derecha pega el codigo que te pongo a
continuacion sustituyendo la ruta y el nombre del archivo con los que
procedan:

Private Sub Workbook_Open()
Workbooks.Open "c:\micarpeta\Libro1.xls"
End Sub

5) Ahora pulsa Alt+F11 para volver a la hoja.
6) Guarda los cambios y cierra el archivo
7) Vuelve a abrir el archivo

Lo siguiente no es respuesta directa a tu solicitud, pero podrias revisar
este enlace para ver las alternativas al uso de la funcion INDIRECTO:



http://groups.google.com/group/micr...nctions/ms
g/ac443753560f0075?dmode=source&hl=en

Saludos,
KL

"jcr" wrote in message
news:
Hola a todos,

Tengo un problema. Como se que al usar la función INDIRECTO para
referenciar
una celda de otro fichero de excel es necesario abrir antes el fichero
correpondiente para que se active la función, necesitaría saber si con
una
macro puedo abrir antes el fichero referenciado y asi si funcionaria la
función INDIRECTO. No tengo mucha experiencia en macro asi que si me
pueden
ayudar con los comandos sería muy bueno.

Saludos ...

j c r .













Preguntas similares