Controleer of een bestand al geopend is

Status
Niet open voor verdere reacties.

RvanGalenLast

Gebruiker
Lid geworden
8 okt 2007
Berichten
146
Ik ben op zoek naar een klein stukje code dat controleert of bestand "X" al geopend is. Als dat het geval is kan doorgegaan worden met de rest van de code. Zo niet dan moet (uiteraard) eerst bestand "X" geopend worden.

Wie kan mij helpen?

Alvast bedankt.

Ronald
 
Hoi

Code:
Sub IsBestandOpen()

    Dim wb As Workbook
    
    On Error Resume Next
    Set wb = Workbooks("abc.xls")
    
    If Err.Number <> 0 Then
        Err.Clear
        Set wb = Workbooks.Open("C:\bestanden\abc.xls")
    End If
    
End Sub

ongeteste code

Wigi
 
Werking code

Hoi Wigi,

Door omstandigheden was ik niet eerder in staat om te reageren.

Ik heb de code geprobeerd en deze werkt op zich wel. Toch krijg ik de melding

"Bestand abc.xls is reeds geopend. Opnieuw openen zal de wijzigingen ongedaan maken. Wilt u het bestand abc.xls toch opnieuw openen?"

Is er ook een code om deze melding te onderdrukken cq. te beantwoorden met ja of nee?

Alvast bedankt voor de hulp zover.

Groet,

Ronald
 
Volgens mij kan je die foutmelding niet krijgen.

Want als VBA probeert een bestand te openen, dan doet die dat omdat het bestand nog niet eerder geopend was (de code checkt daarvoor). Maar dan kan je ook geen foutmelding krijgen dat het bestand reeds geopend is... ;)

Test een en ander nog eens opnieuw aub.

Wigi
 
Wigi,

Heb het nogmaals getest en zie de ene keer wel een melding en de ander keer niet.

Bijkomende info: het bestand wordt gedeeld en er kunnen meerdere gebruikers met het bestand verbonden zijn. Achter het eerste sheet zit code dat reageert op bepaalde wijzingen in het bestand.

Zijn er meerdere gebruikers met het bestand verbonden dan komt er wel een melding.
Ben ik als enige gebruiker met het bestand verbonden dan komt er geen melding.

Is dit af te vangen?
 
Druk in VBA eens Ctrl-G, plak dit:

? Workbooks.Count

en druk Enter.

Wat zie je?
 
Zonder dat er zichtbaar een workbook open is geeft de count 1 als resultaat (dit is persnlk.xls).

Als ik de code éénmaal uitvoer dan worden het er twee. Persnlk.xls plus abc.xls. Ook als ik de code nogmaals uitvoer blijven het er twee. Ook bij het gedeelde bestand blijven het er twee. Het maakt hierbij niet uit of ik de melding met ja of nee beantwoord.

Het lijkt erop dat de het gedeelde bestand weer wordt opgehaald en dat er wijzingen tov de eerdere versie zijn. Dat kan ik echter niet vaststellen.

Wat had jij voor resultaat verwacht?
 
Je moet sowieso oppassen als je met gedeelde bestanden werkt, en nog meer als je VBA code hebt. Zelf heb ik dat nog nooit gebruikt, kan er dus niet echt veel meer over zeggen.

Zoek eens op internet naar code, bv. googlen op

excel vba shared workbook

of iets dergelijks. Bezoek ook de Excel newsgroups en grote Excel forums zoals www.ozgrid.com/forum, of www.mrexcel.com

Als ik zelf iets vind zal ik het laten weten, maar denk het niet direct.

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan