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

VBA Code Share en Unshare

Status
Niet open voor verdere reacties.

Scallebe

Gebruiker
Lid geworden
29 okt 2014
Berichten
535
Beste programmeurs,

ik heb in mijn form de volgende codes :

Code:
Sub MakeExclusive() 
     
    If ActiveWorkbook.MultiUserEditing Then 
        Application.DisplayAlerts = False 
        ActiveWorkbook.ExclusiveAccess 
        Application.DisplayAlerts = True 
        MsgBox "Now Exclusive" 
    End If 
     
End Sub 
 
Sub MakeShared() 
     
    If Not ActiveWorkbook.MultiUserEditing Then 
        Application.DisplayAlerts = False 
        ActiveWorkbook.SaveAs ActiveWorkbook.Name, accessmode:=xlShared 
        Application.DisplayAlerts = True 
        MsgBox "Now Shared" 
    End If 
     
End Sub

Mijn Form begint met de code : Sub MakeExclusive()... dan komen er diverse codes en de form eindigt met de code : Sub MakeShared()...

Excel voert al deze opdrachten uit, dus de form werkt perfect.

Het enige probleem is wanneer ik Excel afsluit en het bestand opnieuw open dan staat mijn "Worbook" niet meer in de "SHARE-MODUS"

Desondanks voldoende de veranderingen bewaard te hebben respecteerd Excel de "SHARE-Modus" niet.

Ik heb al geprobeerD met een Option Explicit en dan een Workbook_open() of Workbook_close() maar dit werkt ook niet.

De protect blijft behouden, maar de SHRARE niet.

Hoe kan ik dit oplossen?

Bedankt.

Pascal
 
Heb je die beide Subs in een module staan? Plaats deze dan in de ThisWorkbook sectie:
Code:
Private Sub Workbook_Open()
    Application.Run MakeShared
End Sub

Zo wordt het document bij het openen al op Shared gezet.
 
Modules.jpgEdmoor,

Beide Subs staan in een module en toch vind hij de MakeShared niet bij openen van mijn Workbook.

krijg de volgende error : Compile error : Expected variable or procedure, not module

Volgens mij is de module er wel (zie foto)Modules.jpg

???

Groetjes
 
Wijzig dan dat stukje dat ik plaatste eens in het volgende:
Code:
Private Sub Workbook_Open()
    Application.Run "MakeShared"
End Sub

Dus het woord MakeShared tussen aanhalingstekens.
 
Dat kan je alleen nog maar je document plaatsen zodat ik er zelf naar kan kijken.
 
Het probleem is dat je de Sub MakeShared aanroept en dat je een module met dezelfde naam hebt en in Module2 ook een Sub met de naam Makeshared staat. Verwijder deze daar, zet de Sub MakeShared in Module2 en verwijder de MakeShared module.
 
Laatst bewerkt:
Edmoor,

Ik heb gedaan wat je hebt voorgesteld en het werkt.

Enkel als ik de knop nieuwe lijn aanklik vul ik de gegevens in en zet hij deze in de voorziene rij. Tot daar geen problem.

Ik safe nogmaals en sluit af. Als ik de file terug open is mijn laatste ingevoerde lijn niet te bespeuren.

Als ik het probeer met de file die ik hier meegestuurd heb dan blijft de nieuwe ingevoerde lijn wel staan.
Ik heb daar ook de aanpassingen doorgevoerd zoals je hierboven aanbeveelde.

Alhoewel de code van de file hierboven identiek dezelfde is als in mijn originele file.

Pffffff...

Pascal
 
Dat is een compleet ander probleem dat niets met het aanroepen van MakeShared te maken heeft.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan