macros en excel

24/01/2006 - 20:54 por David | Informe spam
En macros

Que instruccion puedo usar para saber si un archivo ya esta abierto
Por que usar la instruccion:
Workbooks.Open Filename:="C:\abc .xls"
sobre un archivo ya abierto..me manda un mensaje
de que ya esta abierto y yo quiero eso

en todo caso si ya esta abierto, que seleccione
y listo

DAVID

Preguntas similare

Leer las respuestas

#1 David
24/01/2006 - 21:30 | Informe spam
No hay ninguna función para esto, tendrías que recorrer todo el conjunto de
libros activos para determinar si el que quieres está abierto. Si lo está,
lo activas, y si no lo abres. Yo utilizo el siguiente código. No es muy
ortodoxo, pero me funciona:

Sub libros()
Dim j As Variant, x As String, xf As Boolean
x = "NOMBRE DEL LIBRO"
sf = False
For Each j In Workbooks
If InStr(1, UCase(j.Name), UCase(x)) > 0 Then
j.Activate
sf = True
End If
Next
If sf = False Then Workbooks.Open Filename:=x
End Sub

Mira se te sirve como un punto de partida.

Saludos.

"David" escribió:

Mostrar la cita
#2 KL
24/01/2006 - 21:51 | Informe spam
Hola chicos,

Se puede evitar el uso del bucle mediante el siguiente codigo:

Sub test()
Dim Nombre As String, Libro As Workbook
Nombre = "C:\temp\book2.xls"
On Error Resume Next
Set Libro = Workbooks(Dir(Nombre))
On Error GoTo 0
If Libro Is Nothing Then Set Libro = Workbooks.Open(Nombre)
With Libro
.Activate
'El resto de tu codigo aqui
End With
End Sub


Saludos,
KL


"David" <sdgm04(mapstonod)@hotmail.com> wrote in message news:
Mostrar la cita
#3 Findeo
25/01/2006 - 11:16 | Informe spam
Otra forma de saber si el libro está abierto es mediante la función siguiente
(que encontré en me acuerdo qué foro):

Function Is_Open(libro As String) As Boolean
Dim X As Object
On Error Resume Next
Set X = Workbooks(libro)
If Err = 0 Then Is_Open = True
On Error GoTo 0
End Function

Findeo


"KL" escribió:

Mostrar la cita
#4 KL
25/01/2006 - 11:22 | Informe spam
Hola Findeo,

Mostrar la cita
No es otra forma, es justo la forma que indico yo en mi mensaje solo que esta separada del codigo principal en forma de una funcion
:-)

Saludos,
KL
#5 Findeo
25/01/2006 - 12:26 | Informe spam
Perdona, KL, tienes razón, pero es que yo veía mucho código en tu propuesta.

Un saludo,
Findeo


"KL" escribió:

Mostrar la cita
Ads by Google
Search Busqueda sugerida