• 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.

MsgBox bij openen XLSM bestand

Status
Niet open voor verdere reacties.

BertDP

Gebruiker
Lid geworden
9 dec 2009
Berichten
29
Dag Excel-experts,

Ik heb een xlsm-bestand dat gebruikt wordt door 5 personen (het bestand staat op een centrale locatie).

Bij het openen van het bestand zou ik graag hebben dat er een controle gebeurt of het bestand al in gebruik is door een collega.

Indien in gebruik, verschijnt er een MsgBox met de boodschap "Het bestand is al in gebruik" (ik wil vermijden dat het document wordt geopend in dat geval).

Indien niet in gebruik verschijnt er een MsgBox met de boodschap "Welkom" en opent het XLSM-bestand.

Ik heb via Google al verschillende opties gevonden maar ik krijg altijd een foutmelding.

Mogelijk kan er mij iemand op weg zetten en aangeven waar de code verkeerd is?

Alvast bedankt,

Bert


Code:
Sub isFileOpen()
Dim wkBk As Workbook
If WorkbookOpen("Start.xlsm") Then
Workbooks("Q:\Group Shared\Start.xlsm").Activate
    MsgBox "Het bestand is momenteel in gebruik."
Else
    Set wkBk = Workbooks.Open("Q:\Group Shared\Start.xlsm")
MsgBox "Welkom"
End If
End Sub
Function WorkbookOpen(WorkBookName As String) As Boolean
    WorkbookOpen = False
    On Error GoTo WorkBookNotOpen
    If Len(Application.Workbooks(WorkBookName).Name) > 0 Then
        WorkbookOpen = True
        Exit Function
    End If
WorkBookNotOpen:
End Function
 
Die melding krijg je al van Excel.
 
Dag Snb,

Ik krijg telkens een foutmelding 'er wordt EndSub' verwacht. Moet ik deze code kopieren in een module of in een macro?
 
Zet eens onder

End Function
End Sub

Test het nu nog eens
 
Bedankt voor de tips maar het functioneert nog niet.

Wanneer ik het bestand open op een andere pc (het bestand staat op een centrale server) krijg ik op de andere pc het standaardbericht dat het bestand al in gebruik is (ik zou hier een zelf gemaakt bericht willen zetten en vermijden dat een gebruiker het bestand toch kan openen - dus ook vermijden dat het als 'lezen' kan geopend worden. Dus liefst onmiddellijk afsluiten zonder te bewaren).

Ik zet alles in een module maar misschien is dit wel het probleem?
 
En wat als de gebruiker macro's niet heeft ingeschakeld ?
 
Terechte opmerking...

Ik zit vast :)

Is er een alternatief om te vermijden dat een 2de gebruiker toch hetzelfde bestand opent als alleen lezen?
 
Wat is daarvan dan het nadeel ?
 
Een gebruiker vult in het bestand een aantal zaken in die ik dan via een macro (in datzelfde bestand) kopieer naar een ander bestand (soort van master file) en het bestand dan automatisch laat opslaan. Excel delen (de optie) lukt niet want dan werkt de macro niet.

Als het bestand opent (als het al open is bij een andere gebruiker) dan kan de nieuwe gebruiker gegevens wijzigen maar uiteindelijk toch niet opslaan (in hetzelfde bestand). Kan frustrerend zijn voor gebruikers. Om die reden zou ik als boodschap willen meegeven dat ze het bestand best later opnieuw openen.

Ik had gelezen dat het mogelijk zou zijn via een msgbox en vba maar vrees dat er weinig alternatieven zijn.
 
En wat als je voor iedere gebruiker een eigen bestand maakt met een koppeling naar het 'master'-bestand (databasequery) ?
 
Daar ken ik helaas te weinig van. Nu zijn er 5 à 10 gebruikers, maar binnen een paar maanden kan dit oplopen tot meer dan 200.

Wel bedankt snb voor de suggesties!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan