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

Cel bevindt zich op beveiligt werkblad -- Foutmelding verwijst naar Code VBA

Status
Niet open voor verdere reacties.
Het lijkt er sterk op dat de blokkering van de cel sowieso verwijderd is.
De code controleert namelijk de naam van de gebruiker en verwijdert pas de blokkering van de cel als de gebruikersnaam overeenkomt met de naam in de code.

Met vriendelijke groet,


Roncancio
 
Nee, dat niet.
Wanneer moet de blokkering er precies op?

Met vriendelijke groet,


Roncancio
 
Denk dat na afsluiting van het bestand het best is.

zodra de medewerker dan weer inlogt dan zal de cel van de handtekening teamleider(E33) weer op slot staan. en vice versa --> medewerker handtekening(A33) cel voor teamleider.

Bedankt!
 
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
For Each ws In Worksheets
    ws.Unprotect "111"
    If Len(ws.Name) <= 2 Then ws.Range("A33,E33").Locked = True
    ws.Protect "111"
Next
End Sub

Met bovenstaande code wordt bij het afsluiten van het bestand van alle werkbladen die een weeknummer hebben, de cellen A33 en E33 geblokkeerd.

Met vriendelijke groet,


Roncancio
 
Roncancio,

Super bedankt!

het document werkt naar behoren.

Een resterende vraag (niet urgent).

Bij de week werkbladen worden de beveiligde cellen onselecteerbaar.
Bij de resterende werkbladen is er een reguliere beveiliging met een melding ( wel selecteerbaar)

Hoe kan het dat de ene wel onselecteerbaar worden maar de andere niet?



Totaal aan code wat ik nu heb.

Per werkblad : Voor datum notatie

Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Intersect(Target, ActiveSheet.[A33]) Is Nothing) Then
ActiveSheet.[C34] = Date
End If
If Not (Intersect(Target, ActiveSheet.[E33]) Is Nothing) Then
ActiveSheet.[G34] = Date
End If
End Sub


Workbook voor main function

Private Sub Workbook_Open()
Dim uNaam As String
Dim rRng As Range
uNaam = Environ("username")
week = InputBox("Welke week verwerken?")
On Error GoTo foutje:
Select Case uNaam
Case "Jan"
Set rRng = [A33]
Case "Jaap"
Set rRng = [E33]
End Select

If Not rRng Is Nothing Then
With Sheets(week)
.Unprotect "111"
.Range(rRng.Address).Locked = False
.Protect "111"
.EnableSelection = xlUnlockedCells
Application.Goto .Range(rRng.Address)
End With
End If
Exit Sub
foutje:
MsgBox "Het werkblad bestaat niet!", vbExclamation, "Werkblad onbekend."
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
For Each ws In Worksheets
ws.Unprotect "111"
If Len(ws.Name) <= 53 Then ws.Range("A33,E33").Locked = True
ws.Protect "111"
Next
End Sub


In iedergeval bedankt !
 
Bij het beveiligen van de werkbladen bij het afsluiten van het bestand zit niet de code

Code:
.EnableSelection = xlUnlockedCells

Met vriendelijke groet,


Roncancio
 
Beste Roncancio,

nog bedankt voor de code,
Het is nu 2 weken in test geweest en we lopen tegen het volgende probleem aan.

Het is gewenst dat de medewerker/Leidinggevende meerdere weken kunnen ondertekenen per keer.
op dit moment vraagt excel welke week er ingevuld wordt, hierna krijgt de persoon met autoriteit alleen toegang tot de handtekening cel(A33,medewerker of E33,leiding) van de aangegeven week.

is het mogelijk de code zover te krijgen dat de persoon met autoriteit elke week kan ondertekenen zonder dat het bestand opnieuw geopend moet worden?
Wanneer het bestand afsluit duurt het zon 20 seconde op de code zijn werk te laten doen. sluiten en openen kan dan veel tijd in beslag nemen.

hieronder weer het bestand (ingekort ivm bestandgrootte)

Bekijk bijlage Urenstaat.zip

Met vriendelijke groet,

Julian
 
Bij het openen van het bestand alsmede bij gebruik van sneltoets CTRL W wordt de macro gestart.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan