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

Opheffen beveiliging werkmap dient kolom B beveiligd te blijven

Status
Niet open voor verdere reacties.

peter59

Terugkerende gebruiker
Lid geworden
21 mei 2007
Berichten
2.623
Besturingssysteem
Windows 11
Office versie
Office 365
Hallo,

Ik gebruik een macro om bij afsluiten een werkmap geheel te beveiligen.

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
For i = 1 To Sheets.Count
Sheets(i).Protect Password:="wachtwoord"
Next
End Sub

Na opheffen beveiliging door medegebruikers had ik graag dat kolom B ten alle tijden beveiligd blijft tegen overschrijven.
Deze dient alleen door de key-user op geheven te worden voor bewerken.

Is dit mogelijk??

Wederom alvast hartelijk dank voor het meedenken.

Mvg
Peter
 
Wat denk je zelf? Beveiliging staat aan of uit, en geldt dan voor het hele werkblad. Dat kun je niet op één kolom instellen. Hooguit kun je de gebruiker wegleiden uit het bedreigde gebied.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 2 Then Target.Offset(0, 1).Activate
End Sub
 
En dan had je nog een vraag dat een keyuser er wél bij kan, en dat kun je met de Username denk ik wel afvangen:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not VBA.Environ("Username") = "octafish" Then
        If Target.Column = 2 Then Target.Offset(0, 1).Activate
    End If
End Sub
 
Hallo Octafish

Deze code in ThisWorkbook geplaatst
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
For i = 1 To Sheets.Count
Sheets(i).Protect Password:="wachtwoord"
Next
End Sub

En de code van jou in het desbetreffende werkblad.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not VBA.Environ("Username") = "octafish" Then
        If Target.Column = 2 Then Target.Offset(0, 1).Activate
    End If
End Sub

Dit werkt als een tierelier. Waarvoor dank.
Maar nu is het zo dat ik als key-user kolom B in het desbetreffende werkblad niet kan bewerken.
De code doet wat hij dient te doen m.a.w. springt naar kolom C.
Hoe en/of waar dien ik de username in te vullen??

Nogmaals dank voor je input

Mvg
Peter
 
Kijk eens naar de regel waar 'octafish' staat :).
Wil je makkelijk je eigen username weten, gebruik dan deze opdracht:
Code:
    tmp=Inputbox("","", VBA.Environ("Username"))
 
Hallo OctaFish

Ik ben helaas een grote noob op het gebied van VBA.
Dus ik begrijp een regel niet If Not VBA.Environ("Username") = "octafish" Then
Wat doet deze regel en/of waar dien ik mijn username in te vullen voor de beveiliging van kolom B af te krijgen?

Mvg
Peter
 
Dat zeg ik in mijn vorige berichtje... Je moet natuurlijk je eigen inlognaam gebruiken, en niet de mijne :). Met de extra regel kun je de juiste naam uitlezen. Die regel zet je bovenin de macro, en die zet je gebruikersnaam in een tekstbox. Die kopieer je dan en plak je vervolgens over mijn inlognaam.
 
Hallo OctaFish

In zo verre gelukt.
Maar hij geeft de computernaam aan en niet een eigen ingevuld wachtwoord.
Wat gaat er fout?

P.S. Ik ga deze code morgen eens uitproberen op het werk dus wordt vervolgd.

Mvg
Peter
 
Hallo,

Hier ben ik weer.
Het heeft helaas niet het beoogde effect.

Is het niet mogelijke nadat de beveiliging door een wachtwoord is opgeheven kolom B weer automatisch tegen overschrijven wordt beveiligd?
Deze dient dan weer door een wachtwoord van key-user te worden op geheven.
Natuurlijk dient na opslaan en afsluiten alles weer te worden beveiligd.

Ik weet het, ik vraag veel en weet überhaupt niet of dit mogelijk is.

Dank alvast voor de genomen moeite.

Mvg
Peter
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan