Evaluate para libro cerrado

29/07/2008 - 05:39 por nmgy01 | Informe spam
En una macro, el método:
Evaluate("[LIBRO1.XLS]Hoja1!A1")

funciona perfectamente bien cuando LIBRO1.XLS está abierto.

Pero no encuentro la forma que funcione cuando ese libro está cerrado.
El libro se encuentra ubicado en C:\ y estoy utilizando Excel 2003.

¿Alguién sabe como salvar el problema?

Gracias por cualquier orientación.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
29/07/2008 - 06:34 | Informe spam
hola, 'anonimo/a' !

En una macro, el metodo: Evaluate("[LIBRO1.XLS]Hoja1!A1")
funciona perfectamente... cuando LIBRO1.XLS esta abierto.
Pero no encuentro la forma que funcione cuando ese libro esta cerrado.
El libro se encuentra ubicado en C:\ y estoy utilizando Excel 2003.
Alguien sabe como salvar el problema?



si solamente requieres leer UNA celda en algun libro cerrado -?- (p.e.)

Sub TomarUnDatoDesdeUnLibroCerrado()
Dim Ruta As String, Libro As String, Hoja As String, Celda As String
Ruta = "c:\"
Libro = "libro1.xls"
Hoja = "hoja1"
Celda = "b3"
If Right(Ruta, 1) <> "\" Then Ruta = Ruta & "\"
MsgBox ExecuteExcel4Macro("'" & _
Ruta & "[" & Libro & "]" & Hoja & "'!" & _
Range(Celda).Range("a1").Address(, , xlR1C1))
End Sub

si piensas utilizar este metodo repetidamente, te sugiero definir una funcion personalizada
que (aun cuando) NO podras llamarla desde celdas en hojas de calculo pero SI por codigo (p.e.)

Function TomarDeArchivoCerrado( _
ByVal Ruta As String, _
Archivo As String, _
Hoja As String, _
Celda As String)
If Right(Ruta, 1) <> "\" Then Ruta = Ruta & "\"
TomarDeArchivoCerrado = _
ExecuteExcel4Macro("'" & _
Ruta & "[" & Archivo & "]" & Hoja & "'!" & _
Range(Celda).Range("a1").Address(, , xlR1C1))
End Function

y cuando requieras obtener el dato (por codigo) simplemente la llamas a un msgbox o la asignas a alguna variable (p.e.)

Sub Prueba()
ActiveCell = TomarDeArchivoCerrado("c:\", "libro.xls", "hoja1", "a1")
End Sub

si necesitas "traer" MAS de una celda por vez... sera necesario recurrir a otras tecnicas utilizando (p.e.) ADO

saludos,
hector.
Respuesta Responder a este mensaje
#2 nmgy01
29/07/2008 - 08:33 | Informe spam
Wowwww !!! Que buena respuesta...

Aunque me quedaron dos dudas:

a) Si lo de "anónimo" es porque figura mi cuenta de correo en lugar de
mi nick, te cuento que no sé donde ponerlo (ja ja ja).

b) Dices: "- funcion personalizada que NO podras llamarla desde celdas
en hojas de calculo.". ¿Y si quisiera llamarla desde celdas en hojas
de cálculo ?
Respuesta Responder a este mensaje
#3 Héctor Miguel
29/07/2008 - 20:07 | Informe spam
hola, (...) ?

Wowwww !!! Que buena respuesta...



=> gracias, :D

Aunque me quedaron dos dudas:

a) Si lo de "anónimo" es porque figura mi cuenta de correo en lugar de mi nick
te cuento que no se donde ponerlo (ja ja ja).



=> lo de 'anonimo/a' es porque (yo) "tengo un problema"... "me gusta mirar a los ojos de mi interlocutor"
por ello busco el nombre de pila de quien consulta (ya sea en el "nick" o en la firma de los mensajes) ;)

b) Dices: "- funcion personalizada que NO podras llamarla desde celdas en hojas de calculo.".
Y si quisiera llamarla desde celdas en hojas de calculo ?



=> (hasta donde se) las funciones solo pueden devolver un resultado y no pueden modificar las propiedades de otros objetos
por lo que tampoco les esta permitido el uso de instrucciones del tipo "ExecuteExcel4Macro" :-(

saludos,
hector.
Respuesta Responder a este mensaje
#4 nmgy01
30/07/2008 - 02:28 | Informe spam
Muchas gracias por tu tiempo y por tus orientaciones, HM.

Hasta la próxima.
Eduardo.
Respuesta Responder a este mensaje
#5 Héctor Miguel
30/07/2008 - 02:38 | Informe spam
hola, Eduardo !

Muchas gracias por tu tiempo y por tus orientaciones, HM.



gracias a ti... por el "feed-back" (y por *atreverte a exponer* tu nombre) ;)

Hasta la proxima.
Eduardo.



ya ves ?... "nada que ver"... (entre nick/direccion/... y tu) :))

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida