Hey Martijn,
het spijt me, maar daar ben ik weer, iets doe ik niet goed. Wat heb ik gedaan: Excel via menu 'Extra' de opdracht 'Macro' en dan 'Visual Basic Editor' aangeklikt. Dan kom je in [blad1 (Code)], daarin heb ik dit onderstaande letterlijk ingegeven als volgt:
Sub Resultatenbeveiligen(ByVal Target As Range)
'Controleer of de cel onbeveiligd is.
If Target.Locked = False Then
' Eerst de beveiliging van het werkblad opheffen
ActiveSheet.Unprotect
' Daarna de veranderde cel vergrendelen
Target.Locked = True
' Vervolgens het werkblad opnieuw beveiligen
ActiveSheet.Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
' Enkel selectie van niet-beveiligde cellen toelaten
ActiveSheet.EnableSelection = xlUnlockedCells
End If
End Sub
en vervolgens het bestand opgeslagen. Klopt de eerste regel??? Ik heb het gevoel dat ik bepaalde woorden dien te vervangen door een specifieke aanduiding vanuit werkblad (Excel).
Via objectenoverzicht heb ik 'klassen' Blad 1 geselecteerd en vervolgens in 'Leden van Blad 1' Activate geselecteerd.
Het werkblad in Excel heb ik beveiligd, in het werkblad is opgenomen de cellen die wel gewijzigd mogen worden door de functie 'geblokkeerd' uit te zetten.
Zijn er nog meer handelingen die ik uit moet voeren, want tot mijn spijt werkt het niet, of zit(ten) er in bovenstaande werkwijze nog (een) fout(en).
Ik vindt het een lastig onderdeel binnen Excel, maar wel leerzaam, mogelijk nog vaker toe te passen in de toekomst. Alleen de programmeertaal is abracadabra.
Opnieuw bedankt voor je hulp, ik voel me met dit onderwerp niet bepaald intelligent. Ik heb ook andere bronnen geraadpleegd zoals help en internet, maar daar heb ik niet echt veel aan.
Groetjes BrigitteBrigitte
25-6-2007
Dag Brigitte
Iedereen heeft zo zijn specialiteit, gelukkig bestaat er zoiets als wisfaq om je bij dingen als dit te helpen (alhoewel het niet echt wiskunde is, maar kom).
De code is perfect, op één ding na: je mag de specifieke naam die ik de subroutine heb gegeven niet wijzigen. Door de naam te veranderen in Resultatenbeveiliging, moet je ergens die routine nog aanroepen.
De makkelijkste oplossing is nu om je eerste regel te vervangen doorPrivate Sub Worksheet_Change(ByVal Target As Range)Dit had ik in de vorige werkbladen als naam van de subroutine gebruikt. Het is net dìt stukje tekst dat ervoor zorgt dat Excel na elke wijziging automatisch de code gaat doorlopen!
Martijn
25-6-2007
#51483 - Software - Student universiteit