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

Excel in Sharepoint sluiten wanneer er meerdere gebruikers zijn

Status
Niet open voor verdere reacties.

koster1984

Gebruiker
Lid geworden
4 jul 2012
Berichten
337
Hallo beste helpers,

Mijn bedrijf faseert het gebruik van schijven uit en wil dat we al onze bestanden op Sharepoint zetten. Prima natuurlijk, kunnen er nog meerdere gebruikers in een bestand tegelijkertijd ook! Maar wat als er nou Excel bestanden zijn waar ik precies die mogelijkheid wil uitsluiten?

Is er een manier dat je een Excel kan laten voorkomen dat een Excel wordt geopend als er al iemand in zit? Met VBA mag ook.
Alles wat ik tot nu toe heb geprobeerd lijkt niet te werken, noch kan ik iets vinden in vba waarmee ik kan uitlezen hoeveel gebruikers er in bestand zitten of dat het opslaan niet gaat werken o.i.d.
 
Dat gaat helaas niet. Je kan wel alleen leesrecht geven en het bestand dus laten openen als een read-only. Per gebruiker kan je deze rechten verlenen.
Het is of leesrechten of bewerkingsrecht.
 
Is er ook niet een manier om uit te lezen met VBA of er andere gebruikers in het bestand zitten? en dat je dan de workbook sluit op basis daarvan?
 
Er is geen directe methode.
Een workaround is dat je doormiddel van een workbook_open event de usernames van de gebruikers in cellen te plaatsen, zodra ze het bestand openen.
Wanneer ze het bestand sluiten moet deze namen uiteraard weer verwijderd worden. (Beforeclose_Event)

Voordat de username geplaatst wordt, dien je eerst te checken of er al een naam aanwezig is in je specifieke bereik. Zo ja, sluit dan het bestand.
 
Laatst bewerkt:
Voorzetje

Code:
Private Sub Workbook_Open()
 With Sheets(1).Range("AB1")
   If .Value = "" Then
     .Value = Environ("username")
   Else
      MsgBox "Iemand anders is aan het werk", vbOKOnly, "Let op"
     .Parent.Parent.Close 0
   End If
 End With
End Sub



Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets(1).Range("AB1") = ""
Save
End Sub
 
Dat heb ik al geprobeerd, maar daar reageert het helaas niet helemaal op zoals je verwacht.

Maar bedankt in elk geval!
 
Misschien moet de file meteen opgeslagen worden zodat de username in AB1 staat?

Code:
Private Sub Workbook_Open()
 With Sheets(1).Range("AB1")
   If .Value = "" Then
     .Value = Environ("username")
   Else
      MsgBox "Iemand anders is aan het werk", vbOKOnly, "Let op"
     .Parent.Parent.Close 0
   End If
 End With

[COLOR="#FF0000"]Save[/COLOR]

End Sub



Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets(1).Range("AB1") = ""
Save
End Sub
 
Zou goed kunnen. Maar meestal staat autosave aan in een sharepoint omgeving
 
Ik ben niet bekend met sharepoint maar betekent autosave realtime of om de x minuten/seconden?
 
Na elke aanpassing in het bestand. Er kan echter enige vertraging in zitten richting de cloud.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan