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

Is het mogelijk formules onzichtbaar te maken in een onbeveiligd sheet?

Status
Niet open voor verdere reacties.

mfranken

Gebruiker
Lid geworden
19 nov 2007
Berichten
349
Ik heb een sheet dat bij het openen dmv een macro steeds gesorteerd wordt. Daarom mag het sheet niet beveiligd worden. Nu zou ik toch graag willen dat de formules in het sheet niet zichtbaar zijn. Is dat mogelijk?

Vriendelijke groet Marij.
 
Beste mfranken ;)

In de opties kan je kiezen voor Formules weergeven of verbergen.
Maar iedereen kan dit terug ongedaan maken zonder beveiliging.

Groetjes Danny :thumb:
 
Het is ook mogelijk om je sheets (voor de gebruikers) te beveiligen met aen password maar toch macros te kunnen uitvoeren. Dat kan via de methode worksheet.protect.userinterfaceonly

Extract uit de help file dat hierop betrekking heeft:

Expressie.Protect(Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables)

Expressie Een variabele die een Worksheet-object weergeeft.


UserInterfaceOnly Optioneel Variant True voor het beveiligen van de gebruikersinterface, maar niet van macro's. Als u dit argument weglaat, heeft de beveiliging betrekking op zowel macro's als de gebruikersinterface.
 
Laatst bewerkt:
Hallo Finch

De oplossing die je geeft moet dat in ThisWorkbook gezet worden of moet dit in de beteffende macro gezet worden

wim
 
Laatst bewerkt:
Als je nu eens aan het begin van die sorteermacro zet

Code:
ActiveSheet.Unprotect

en aan het einde

Code:
ActiveSheet.Protect

eventueel met een wachtwoord wordt het dan

Code:
ActiveSheet.Unprotect Password:="Jouwwachtwoord"
en

Code:
ActiveSheet.Protect  Password:="Jouwwachtwoord"

Dan kun je de sheet gewoon beveiligen.

Mvg

Piet
 
@ Wim: je kan de code om een worksheet te protecten bv. plaatsen in een module. En deze telkens aanroepen wanneer je het bestand wil beveiligen. Vergeet ook niet om uw VBA code van een passwoord te voorzien, anders is de beveiliging heel eenvoudig op te heffen. (Nu, geen enkel password binnen Excel is 100% veilig, maar wel goed genoeg voor de meeste gebruikers)

@tilpi: dat is een mogelijke manier, maar wanneer je dat doet en je drukt Ctrl+Break dan stopt de code met uitvoeren, en heb je controle over een onbeveiligde sheet. Terwijl dat laatste niet de bedoeling is. Persoonlijk ben ik hier geen voorstander van, zeker gezien de "mooiere" oplossing die er binnen Excel bestaat (userinterfaceonly=true)
 
Hallo Finch

sorry dat ik in dit topic reageer over dit onderwerp.

Ik dacht dat het bestand dan met een wachtwoord beveiligd kan worden.
Maar dat er dan wel een macro uitgevoerd kan worden zonder dat de macro dande beveiliging er af moet halen.

wim
 
Hallo Finch

sorry dat ik in dit topic reageer over dit onderwerp.

Ik dacht dat het bestand dan met een wachtwoord beveiligd kan worden.
Maar dat er dan wel een macro uitgevoerd kan worden zonder dat de macro dande beveiliging er af moet halen.

wim

Hallo Wim,

ik begrijp je vraag niet helemaal, maar ik zal trachten een algemeen antwoord te geven. Moest je toch iets anders bedoelen, vraag je maar verder.

Je kan binnen Excel grofweg gezegd op 3 niveaus passwoorden plaatsen.
1. op bestandsniveau. Dit passwoord wordt dan gevraagd bij het openenen van het bestand.
2. op sheetniveau: Hiermee beveilig je een gedeelte of alle cellen van een bepaalde sheet, en je kan aangeven welke acties mogelijk moeten zijn of juist onmogelijk moeten zijn.
3. op je VBA code: Dit passwoord wordt gevraagd wanneer je de VBA code van dat bestand wilt zien.

Wanneer je nu een passwoord op sheetniveau via code aanbrengt doen de meeste dat als volgt:

Code:
sheets(2).Protect Password:="test"

Op die manier is de tweede sheet beveiligd met het passwoord "test".
Je kan nu op die sheet geen macro uitvoeren of gegevens invoeren met de hand, als dat tegen je beveiligingsrestricties ingaat.

Wil je nu toch een macro uitvoeren op deze beveiligde sheet, dan die KAN je in VBA de protectie afzetten, je code uitvoeren en de protectie terug aanzetten.
bv.

Code:
sheets(2).unprotect Password:="test"
Code die nodig is
sheets(2).protect Password:="test"

Wanneer je nu echter snel genoeg bent, en ctrl+break drukt tijdens de uitvoering, onderbreek je de code, en heb je toegang tot de onbeveiligde sheet. Wat in mijn ogen niet tot aanbeveling strekt.

Wanneer je echter je sheet in je code als volgt van een beveiliging voorziet:

Code:
sheets(2).Protect Password:="test", userinterfaceonly:=True

Dan geeft Excel je de mogelijk om wijzigingen op die sheet uit te voeren via VBA code, maar niet via handmatige invoer.
Ctrl+Break drukken geeft je nog geen toegang tot een onbeveiligde sheet wanneer je code uitvoert, want in die code die je de beveiliging niet op te heffen via het unprotect statement.

Als laatste geef ik nog mee, dat een beveiligde sheet zonder een passwoord te zetten op je VBA code een ervaren gebruiker toegang laat om je sheet te manipuleren via VBA code. Echter geen enkel wachtwoord binnen Excel, noch op bestandsniveau, noch op sheetniveau, noch op VBA niveau is onfeilbaar. Je verhoogt enkel de drempel om het afgeschermde gedeelte te manipuleren.
 
Beste mfranken ;)

In de opties kan je kiezen voor Formules weergeven of verbergen.
Maar iedereen kan dit terug ongedaan maken zonder beveiliging.

Groetjes Danny :thumb:

Ik wou hier eerst maar eens mee beginnen. De rest ziet er nogal ingewikkeld uit voor mij:)
Kun je iets specifieker aangeven waar dit te vinden is onder opties? Ik heb alle tabbladen bekeken, maar het niet gevonden tot nu toe. Ook niet in de helpfile.
Groetjes Marij
 
Het is ook mogelijk om je sheets (voor de gebruikers) te beveiligen met aen password maar toch macros te kunnen uitvoeren. Dat kan via de methode worksheet.protect.userinterfaceonly

Ik heb een nederlandstalige excel. Heb je een idee waarnaar ik zou kunnen zoeken in de help-file? De tekst die je meestuurde is voor mij abracadabra :-)
Groetjes Marij
 
Ik vind de uitleg die hierboven al neergezet is, redelijk duidelijk. Dus als je dat even rustig terug leest, ga je er volgens mij wel uitgeraken.

Anders zoek je UserInterfaceOnly op in de helpfiles, maar of dat veel duidelijker is, weet ik niet zeker. Je kan natuurlijk ook op dit forum zoeken of even googelen.

Wigi
 
Dat maakt niet uit. In VBA programmeer je sowieso in het Engels. De termen zoek je dus op in het Engels in de helpfiles (die van VBA).

Wigi

Waarschijnlijk zit hier dan het probleem voor mij. Ik heb alleen nog maar geprobeerd formules te maken in excel zelf. Met VBA heb ik nog helemaal geen ervaring. Dus zal ik me daarin moeten gaan verdiepen wil ik een oplossing vinden voor mijn vraag?
Marij
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan