Excel sheet sluiten ALS ie open staat, ANDERS niets

Status
Niet open voor verdere reacties.

Morriss

Gebruiker
Lid geworden
7 feb 2008
Berichten
131
Goedemiddag,

Ik heb een macro die een document opent, echter krijg ik een melding als dit document reeds geopend is. Dat wil ik voorkomen (de macro moet in 1 keer doorlopen), dus wil ik graag een regel die controleert of het betreffende document open staat en zo ja: dat ie het document sluit.

Ik heb geprobeerd een regel te maken die het document sluit, maar dan krijg ik een foutmelding als het document niet open staat, dat is niet de bedoeling.

Wie kan me hierbij helpen? Alvast bedankt!!!
 
Van J. Walkenbach (j-walk.com):
Deze functie kun je aanroepen in je macro en vertelt je of het gevraagde bestand (bijvoorbeeld MijnFile.xls) open is.

Code:
Function WorkbookIsOpen(wbName) As Boolean
'   Returns TRUE if the workbook is open
    Dim x As Workbook
    On Error Resume Next
    Set x = Workbooks(wbName)
    If Err = 0 Then WorkbookIsOpen = True _
        Else WorkbookIsOpen = False
End Function

http://spreadsheetpage.com/index.php/tip/some_useful_vba_functions/
 
Als ik deze functie aan de praat kan krijgen, kan ik mijn macro daar verder op afstemmen, echter krijg ik de functie niet aan de praat.
 
Dat begrijp ik niet, want dit testje doet het. Ik heb onderstaande code en de functie in een module gezet, en een leeg Excel-bestandje aangemaakt ("Test.xlsm"). Als ik dat lege bestandje open heb staan of juist dicht en de macro laat lopen geeft ie de juiste melding (de functie is niet hoofdlettergevoelig voor filenaam):
Code:
Sub TestWbOpen()

Dim Testfile$   'string

    Testfile = "test.xlsm"
    
    If WorkbookIsOpen(Testfile) Then
        MsgBox ("Het bestand is open")
    Else
        MsgBox ("Het bestand is niet open")
    End If

End Sub
 
Ah kijk, op die manier moet ik hem dus verwerken in een macro, dat wist ik niet! Ga het nu proberen! thnx!
 
Helemaal gelukt! thnx! Hoe kan ik controleren met vba of een document bestaat in een bepaalde map en zo niet een melding geven (in tekst)>?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan