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

Macro om werkmap te delen

Status
Niet open voor verdere reacties.

peter16

Gebruiker
Lid geworden
2 dec 2000
Berichten
87
Weet iemand een macro code waarmee ik werkmappen kan delen of waarbij dit delen juist ongedaan gemaakt kan worden (liefst zonder tussentijdse vragen om bevestiging). Natuurlijk kan dat ook gewoon via de menuoptie maar ik wil de handeling verder vereenvoudigen.

Bovendien: Is het mogelijk om middels een macro weer te laten geven wie er het gedeelde bestand momenteel in gebruik hebben?

Alvast bedankt

Peter
 
Met volgende macro kan je schakelen tussen gedeelde/exclusieve werkmap:
Code:
Sub WerkmapDelen()
Dim naam$
  Application.DisplayAlerts = False
  If ActiveWorkbook.MultiUserEditing Then
    ActiveWorkbook.ExclusiveAccess
  Else
    naam = ActiveWorkbook.FullName
    ActiveWorkbook.KeepChangeHistory = True
    ActiveWorkbook.SaveAs Filename:=naam, _
      CreateBackup:=True, AccessMode:=xlShared
  End If
End Sub
Plaats de macro in de Persoonlijke Macrowerkmap om deze voor alle documenten te kunnen gebruiken.
 
Bedankt, weet je ook het andere antwoord

Ingrid, wederom bedankt, precies wat ik zocht. Weet jij, of iemand anders ook antwoord op het tweede deel van mijn vraag nl?

Is het mogelijk om middels een macro weer te laten geven wie er het gedeelde bestand momenteel in gebruik hebben?

Alvast bedankt voor de reacties.
 
antwoord

op de laatste vraag: volgens mij kan dit alleen wanneer je systeembeheerder bent!!
 
Met volgende code wordt het dialoogvenster Werkmap delen weergegeven:

Application.CommandBars(1).FindControl(ID:=2040, Recursive:=True).Execute
 
Ik ben met bovenstaande oplossing wat aan het experimenteren gegaan. Het zou nl. mooi zijn als het scherm na bijv. 3 seconden vanzelf weer sluit. Ik dacht aan iets als onderstaand. Het werkt echter niet. Wie weet hoe het wel moet/kan?



Sub Delen()
t = Timer
Do While Timer < t + 1
DoEvents
Application.CommandBars(1).FindControl(Id:=2040, Recursive:=True).Execute
Loop
End Sub

Alvast bedankt

Peter
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan