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.
 

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.

Preguntas similares