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

Beveiliging opheffen en terug instellen

Status
Niet open voor verdere reacties.

Bart Smith

Gebruiker
Lid geworden
9 okt 2008
Berichten
16
Ik heb een inventarissysteem gemmakt in excel.
Ik zou graag een ddel van de cellen beveiligen zodat er niet kan gewijzigd worden aan bepaalde waarden.
Ik heb 2 kolommen (C4 tot C35 en D4 tot D35) welke moeten gewijzigd worden door de gebruiker.
Ik heb nog een kolom waarin de nieuwe voorraad staat (Beveiligde cel).
Nu zou ik willen dat wanneer er op de knop "actualiseren" geklikt wordt, de beveiliging van het bald opgeheven wordt, de voorraad aangepast wordt en de beveiliging van het blad opnieuw ingesteld wordt.

Kan iemand mij verder helpen?

Hier de code zoals deze nu onder de knop "actualiseren" zit.



Sub Beveiliging_opheffen()
ActiveSheet.Unprotect
End Sub


Sub MacroLeegBlad()
Dim rBereik As Range
Application.ScreenUpdating = False
For Each rBereik In ActiveSheet.Range("F4:F35")
rBereik.Value = rBereik.Value - rBereik.Offset(0, -2).Value
Next
ActiveSheet.Range("C4:D35").ClearContents
Application.ScreenUpdating = True
End Sub

Sub MacroCopy()
Dim rBereik As Range
Dim lRij As Long
lRij = Worksheets("Detail").Range("C65536").End(xlUp).Row + 1 Application.ScreenUpdating = False
For Each rBereik In ActiveSheet.Range("D4:D35")
If rBereik.Value <> "" Then
ActiveSheet.Range("B" & rBereik.Row & " :D" & rBereik.Row).Copy
Worksheets("detail").Range("B" & lRij & " :D" & lRij).PasteSpecial Paste:=xlPasteValues
lRij = lRij + 1
End If
Next
Sheets("Detail").Columns("B:B").EntireColumn.AutoFit
Sheets("Detail").Columns("B:B").ColumnWidth = 40#
Application.CutCopyMode = False
MacroLeegBlad
Application.ScreenUpdating = True
End Sub


Sub Beveiliging_instellen()
ActiveSheet.protect
End Sub


Bedankt voor jullie tijd ....
 
Bart Smith,

Zo zou het moeten werken.
De volgende keer graag de code tussen de tags, de code selecteren en hier boven op # klikken.

Code:
Sub MacroLeegBlad()
Dim rBereik As Range
Application.ScreenUpdating = False
ActiveSheet.UnProtect Password:="Verzinmaarwat"

 [COLOR="Red"]Plaats hier uw code[/COLOR]

ActiveSheet.Protect Password:="Verzinmaarwat"
Application.ScreenUpdating = True
End Sub
Of zo.
'haal de beveiliging van het blad
Code:
Application.ScreenUpdating = False
Sheets("gegevens").Unprotect

[COLOR="Red"]Plaats hier uw code[/COLOR]

sheets("gegevens").Protect
Application.ScreenUpdating = True
 
Laatst bewerkt:
Misschien een stomme vraag, maar als je een button hebt om dat te doen, waarom is de sheet dan protected ?

Ik bedoel, iedereen kan dan toch op die knop drukken ?

Groeten,
Jacques
 
Misschien een stomme vraag, maar als je een button hebt om dat te doen, waarom is de sheet dan protected ?

Ik bedoel, iedereen kan dan toch op die knop drukken ?

Groeten,
Jacques

Inderdaad, maar het is de bedoeling om de cellen met artikelnummers, aangepaste voorraad, normale stock, namen en verwijzingen te vergrendelen zodat deze niet kunnen gewijzigd worden en er ook niet kan "gefoefeld" worden in de stock.

Code wordt straks eens geprobeerd.....
 
Ja, maar voor actualiseren hoef je toch niet de bladbeveiliging op te heffen ?

Groeten,
Jacques
 
Zonder VBA ( macro ) maak een tweede tabblad en verwijs daarnaar , vul vanaf dat tabblad de nieuwe voorraad aan beveilig beiden tabbladen of zet het hidden , eventueel vanaf een ander workbook ietsjes meer werk > veiliger
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan