• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Controleren of een Excel-bestand open staat

Status
Niet open voor verdere reacties.

mulderm

Gebruiker
Lid geworden
2 jul 2004
Berichten
167
Hallo,

Hoe kan ik controleren of een Excel-bestand open staat in VBA?
Ik wil bepaalde bewerkingen automatisch uitvoeren in Excel-bestanden
maar dan moeten deze wel gesloten zijn.

mulderm
 
Hoi mulderm,

It's a simple :rolleyes:


Code:
Sub CloseOpenFiles()

Dim openXls As Workbook

For Each openXls In Excel.Workbooks
    retval = MsgBox(openXls.Name & " staan open" & vbCrLf & "Wilt u deze sluiten?", vbQuestion + vbYesNo)
    If retval = vbYes Then
        openXls.Close
    End If
Next

End Sub
 
Perfect Arno!
Dankjewel.
Nog een vraagje:
Stel voor dat een bestand genaamd test.xls op een server staat en dat meerdere
mensen kunnen openen.
Hoe kan ik dit controleren of dit bestand geopend is?
Normaal krijg ik een melding 'open as Read Only' als deze bestand al geopend is.

mulderm
 
Ik heb onderstaande niet uit getest, maar ik denk dat het wel werkt

Code:
Function IsFileOpen(FileName As String) 
    Dim iFilenum As Long 
    Dim iErr As Long 
     
    On Error Resume Next 
    iFilenum = FreeFile() 
    Open FileName For Input Lock Read As #iFilenum 
    Close iFilenum 
    iErr = Err 
    On Error Goto 0 
     
    Select Case iErr 
    Case 0:    IsFileOpen = False 
    Case 70:   IsFileOpen = True 
    Case Else: Error iErr 
    End Select 
     
End Function 
 
Sub test() 
    If Not IsFileOpen("C:\MyTest\volker2.xls") Then 
        Workbooks.Open "C:\MyTest\volker2.xls" 
    End If 
End Sub
'
Bron: http://www.vbaexpress.com/kb/getarticle.php?kb_id=468
 
Werkt Perfect Arno, ook dus als het bestand op een Server staat.
Wel heb ik verandert dat het bestand niet geopend wordt mocht hij gesloten zijn.
Ik geef een messagebox, als het bestand geopend is, met de mededeling dat hij open staat.
Alleen 1 nadeel: als het bestand niet bestaat of niet aanwezig is geeft hij geen melding.
Hoe is dit op te lossen?

mulderm
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan