Saltar al contenido

Condicionar el abrir de un archivo


Recommended Posts

publicado

saludos, tengo un problema

tengo una macro hecha para que me abra un archivo desde mi escritorio y me ejecute una serie de cosas ( la ordena, saca un rango y la pega en otro libro).

lo que necesito es que si le doy a ejecutar a esa macro de nuevo , y me pregunta si deseo abrir el archivo de nuevo, la respuesta sea NO y ademas me corra lo que seguia en la macro

tenia pensado utilizar un IF de modo que si el archivo no esta abierto , lo abra y ejecute el resto, en caso contrario ELSE que solo ejecute el resto de la macros

agradezco cualquier ayuda

publicado

Debes subir tu libro para poder ver el código. Lee las Normas del foro.

Esto lo saque de la ayuda de Microsoft:

En el código que tienes:

Sub TestFileOpened()

If IsFileOpen("c:\Archivo.xls") Then

MsgBox "El libro esta abierto"
Else
MsgBox "El libro no esta en uso"

Workbooks.Open "c:\Archivo.xls"
End If
End Sub[/CODE]

En un modulo aparte o en el mismo:

[CODE]Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer

On Error Resume Next ' Turn error checking off.
filenum = FreeFile() ' Get a free file number.
' Attempt to open the file and lock it.
Open filename For Input Lock Read As #filenum
Close filenum ' Close the file.
errnum = Err ' Save the error number that occurred.
On Error GoTo 0 ' Turn error checking back on.

' Check to see which error occurred.
Select Case errnum

' No error occurred.
' File is NOT already open by another user.
Case 0
IsFileOpen = False

' Error number for "Permission Denied."
' File is already opened by another user.
Case 70
IsFileOpen = True

' Another error occurred.
Case Else
Error errnum
End Select

End Function
[/CODE]

Salu2

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.