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

Binnen een bepaald gebied blijven vba code

Status
Niet open voor verdere reacties.

Ivanhoes

Gebruiker
Lid geworden
6 jun 2015
Berichten
67
Hoi mensen,

Is er een manier via vba om te zorgen dat men gedwongen binnen een bepaald gebied blijft en
men dus buiten dat gebied niets kan selecteren/wijzigen etc etc?

Normaal gesproken is dit natuurlijk op te lossen met het beveiligen van een tabblad en het
(de)blokkeren van de betreffende cellen.
Het geval wil echter dat de beveiliging voor sommige mensen noodzakelijk uit moet. Toch wil ik
dan niet dat zij bepaalde cellen kunnen bereiken met de tab-toets, of enter-toets of....etc.

Ik heb geen voorbeeldbestand, maar dit als voorbeeld:

Gebied B1:E15 mag benaderd worden, evenals cel G2.
De rest mag niet benaderd worden, ook niet als de beveiliging van het tabblad is uitgezet.

Ik hoop dat iemand mij kan helpen.

Alvast bedankt en groetjes,

Ivanhoes.
 
Maak een formulier voor het vullen van de toegestane cellen.
 
Hoi Edmoor,

Bedankt voor je reactie.

Formulieren ben ik niet zo bekend mee. Volgens mij zou je in dit geval dus een formulier gebruiken om gegevens
in B1:E15 en cel G2 in te vullen. Dat is normaal gesproken ook het geval.

Echter.....op een beveiligd tabblad met wachtwoord in mijn oorspronkelijke bestand had ik ingesteld dat B1:E15 altijd
benaderd en/of gewijzigd mochten worden. G2 bleef geblokkeerd.
Als de beveiliging er af gehaald wordt, dan is meteen het hele blad beschikbaar. En dat wil ik niet. Ik wil dat alleen
cel G2 als extra te benaderen is voor anderen. G2 is een belangrijke cel, die alleen door mensen die het wachtwoord
kennen gebruikt mag worden. Zonder dat zij het hele tabblad kunnen benaderen, ivm met de berekeningen.

De vba-code is óók beveiligd en als ik zelf wat moet veranderen in het gehele tabblad, dan kan ik eenmalig via vba
de range tot het hele werkgebied uitbreiden.

Op deze manier hoop ik eigenlijk tot op cel- of gebiedsniveau een (simpele) beveiliging op te zetten.

Ik heb ooit een boek gelezen van Wim de Groot...Hoe leer je makkelijk...., waarin hij liet zien hoe je binnen een bepaald
gebied bleef (binnen een tabel blijven) mbt vba. Ik kan dit echter niet meer vinden.

Ik hoop alsnog dat iemand mij kan helpen met de vba-code.

Groetjes,

Ivanhoes.
 
Je kan het werkblad totaal beveiligen. De gegevens van het formulier schrijf je via VBA naar dat werkblad. Op dat moment kan je vanuit VBA ook de beviliging eraf halen en nat het plaatsen van de gegevens weer terug zetten.

Misschien dat iemand een idee heeft zonder VBA en een formulier.
Dat zal best mogelijk zijn.
 
Laatst bewerkt:
Hoi Edmoor,

Nogmaals bedankt voor je reactie. Inmiddels heb ik iets gevonden:

Private Sub Worksheet_Activate()
Worksheets("Blad1").ScrollArea = "B1:E15"
End Sub

Deze code zorgt ervoor dat ik niet buiten het gebied kan komen. Precies wat ik wil. Zo eenvoudig kan het bijna zijn, hehe.
Nu probeer ik óók nog eens cel G2 op te nemen in diezelfde code en dat lukt mij niet met:

"B1:E15, G2" of: ("B1:E15, G2")


Misschien moet de ScrollArea wel aangesloten zijn? Ik heb geen idee en kan het antwoord hierbij ook niet vinden.
Ik hoop dat je mij hieraan kan helpen.

Alvast bedankt en groetjes,

Ivanhoes.
 
Als je .ScrollArea gebruikt moet deze inderdaad aaneengesloten zijn en zal je B1:G15 moeten gebruiken. Daar zou ik zo geen weg omheen weten om tevens een andere cel toe te staan.
 
Laatst bewerkt:
Waarom is de beveiliging belangrijk? Je moet je beseffen dat het niets "beschermd" tegen oneigenlijk gebruik van de gegevens. Ook zijn andere gegevens nog steeds makkelijk aan te passen indien men dat zou willen. Beveiligen tegen incidentele aanpassing is prima, maar dat is dan ook alles wat je kan bereiken
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan