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

Beperking bestanden openen

Status
Niet open voor verdere reacties.

SUVERMO

Gebruiker
Lid geworden
22 dec 2019
Berichten
481
Goedenavond experten,
Heeft er iemand een voorstel voor volgende.
Als het bestand "Openen Beperken.xlsm" is geopend zou het niet mogelijk mogen zijn om andere Excel-bestanden te openen.
Als er Excel-bestanden zijn geopend zou het niet mogelijk mogen zijn om het bestand "Openen Beperken.xlsm" te openen.
Verdere info in "Openen Beperken.xlsm"
 

Bijlagen

Welk nut heeft dit dan? Wat als ik het wel omzeilen door een 2e instantie van Excel open? Wat als ik het inschakelen van macro's uit heb staan?
 
Of bij het openen van een Excel document de CTRL toets ingedrukt houden om Excel in Safe mode te starten.
 
bij het openen van het bestand is alles van excel onzichtbaar, bedoeling is dat geen effect zou hebben op andere bestanden van een eventuele gebruiker


Code:
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error Resume Next
    With ActiveWindow
      .WindowState = xlMaximized
      .DisplayHeadings = False
      .DisplayHorizontalScrollBar = False
      .DisplayVerticalScrollBar = False
      .DisplayWorkbookTabs = False
      .DisplayGridlines = False
    End With
    
    With Application
      .ExecuteExcel4Macro "show.toolbar(""Ribbon"", False)"
      .DisplayFullScreen = True
      .CommandBars("Worksheet Menu Bar").Enabled = False
      .DisplayFormulaBar = False
      .DisplayStatusBar = False
      .ScreenUpdating = True
    End With
On Error GoTo 0
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
 
We zien dat hier vaker voorbij komen.
Alles maar onzichtbaar maken en werking totaal veranderen.
En dan hier vragen de problemen die dat geeft op te lossen.
Ik begrijp nog steeds het nut niet.
 
Laatst bewerkt:
Misschien kan je hier beter 's je echte probleem uitleggen, in plaats van de mogelijke oplossing die je zelf hebt verzonnen.
Ik vermoed dat je probleem dan op een héél andere manier wordt opgelost.

Overigens... codes zoals alle andere bestanden sluiten, of werkbalken verbergen... (of zelfs het naamvakje verwijderen, zoals ik hier onlangs zag) zou ik eerder een 'pestcode' noemen. Niet als zodanig bedoelt, maar wel als zodanig ervaren.
 
Hallo LucHeyndrickx, edmoor en VenA

bedoeling is dat macro's van een bestand geen invloed hebben op andere geopende bestanden, of op bestanden die later geopend worden.
 
in #2
Welk nut heeft dit dan? Wat als ik het wel omzeilen door een 2e instantie van Excel open? Wat als ik het inschakelen van macro's uit heb staan?
In #5
Ik begrijp nog steeds het nut niet.
Een klein stukje van ook relevante vragen en opmerkingen uit #6
Misschien kan je hier beter 's je echte probleem uitleggen,

Nergens een reactie op te vinden. De drie helpers hier zijn zeer ervaren gebruikers van Excel. Maar jij denkt het beter te weten?
 
Sorry, ik weet het echt niet beter, mijn kennis van VBA is miniem, wat waarschijnlijk het echte probleem is.
Mogelijk is de melding in #7 een onmogelijke situatie.
 
Wat je denk ik wil is Excel zonder de volledige gebruikersinterface.
Waarschijnlijk om gebruikers in mogelijkheden te beperken of tegen zichzelf te beschermen.
In het laatste geval dienen deze gebruikers opgeleid of begeleid te worden in het gebruik van Excel.
Ook kan een handleiding voor het gebruik van je document helpen.

Instellingen die je doet via het Application object gelden applicatie breed, dus voor heel Excel, niet alleen voor het onderhanden document.
 
Als het de bedoeling is dat andere bestanden niet beïnvloed worden... (en ik ga van de veronderstelling uit dat je steeds 'originele' bestanden ter beschikking wil hebben, is het misschien wel een optie die andere bestanden gewoon als een sjabloon op te slaan.
Bij opslaan als heb je die mogelijkheid.
Dan kunnen de gebruikers er in prutsen zo veel ze willen... met een nieuw bestand heb je alles weer als origineel.

Je moet trouwens al vreselijk rare code schrijven... of een echte expert zijn indien je excel bestand zomaar andere geopende excel bestanden gaat wijzigen.
En bestandjes openen terwijl je bewuste bestand niet geopend is, is al helemaal geen probleem.

Toch nog een beetje code meegeven, alhoewel ik vermoed dat dat echt je probleem niet zal oplossen.
Deze code zet je in de 'workbook open' event.
Die zorgt er voor dat dit bestand enkel als enigste kan geopend worden (enkel bij de start)

Code:
If Application.Workbooks.Count > 1 Then
    MsgBox "sluit eerst alle andere excel bestanden"
    ThisWorkbook.Close
End If
 
Laatst bewerkt:
Wat je denk ik wil is Excel zonder de volledige gebruikersinterface.
Waarschijnlijk om gebruikers in mogelijkheden te beperken of tegen zichzelf te beschermen.
In het laatste geval dienen deze gebruikers opgeleid of begeleid te worden in het gebruik van Excel.
Ook kan een handleiding voor het gebruik van je document helpen.

Instellingen die je doet via het Application object gelden applicatie breed, dus voor heel Excel, niet alleen voor het onderhanden document.

Bedankt voor de info, een handleiding moet ik zeker maken, ik denk eraan om schermopnames te maken die via linken naar YouTube bekeken kunnen worden
 
Als het de bedoeling is dat andere bestanden niet beïnvloed worden... (en ik ga van de veronderstelling uit dat je steeds 'originele' bestanden ter beschikking wil hebben, is het misschien wel een optie die andere bestanden gewoon als een sjabloon op te slaan.
Bij opslaan als heb je die mogelijkheid.
Dan kunnen de gebruikers er in prutsen zo veel ze willen... met een nieuw bestand heb je alles weer als origineel.

Je moet trouwens al vreselijk rare code schrijven... of een echte expert zijn indien je excel bestand zomaar andere geopende excel bestanden gaat wijzigen.
En bestandjes openen terwijl je bewuste bestand niet geopend is, is al helemaal geen probleem.

Toch nog een beetje code meegeven, alhoewel ik vermoed dat dat echt je probleem niet zal oplossen.
Deze code zet je in de 'workbook open' event.
Die zorgt er voor dat dit bestand enkel als enigste kan geopend worden (enkel bij de start)

Code:
If Application.Workbooks.Count > 1 Then
    MsgBox "sluit eerst alle andere excel bestanden"
    ThisWorkbook.Close
End If

Bedankt voor de code, samen met
Code:
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
    If ActiveWorkbook.Name <> ThisWorkbook.Name Then
        ActiveWorkbook.Close
    
    vbs = Environ("temp") & "\SluitOpenenBeperken.vbs"
    Open vbs For Output As #1
    Print #1, "MsgBox " & Chr(34) & "Sluit eerst Openen Beperken " & Chr(34)
    Close #1
    Shell ("wscript " & vbs)

    End If
End Sub

lijkt mijn probleem opgelost, wel nog een paar maal testen.

ik dank u voor uw raadgeving
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan