Gedeelde beveiliging

Status
Niet open voor verdere reacties.

marcelvba

Gebruiker
Lid geworden
26 jul 2010
Berichten
40
Hallo allen,

Mijn logboek is zo goed als af en hier Bekijk bijlage TEST.xls aan toegevoegd. Ben er zeer tevreden over. Een ieder nog dank voor bijdragen aan de uiteindelijke vorm.

Ik was zover dat ik kon starten met het beveiligen van het geheel. Dit is gelukt, althans om de werkbladen te beveiligen, als VBA moet handelen, beveiliging opheffen en wanneer klaar weer beveiligen. Ik heb geen wachtwoorden gebruikt, dat is niet nodig. Het gaat om handelingen die per ongeluk niet handig zijn.

Ik liep hierbij tegen twee dingen aan.

1: De lege regel in rij4 sheet1 mag nooit en te nimmer verwijderd worden. Dit kan wel bij de button "Regel verwijderen". Deze wordt namelijk gekopieerd voor een nieuw item, na het sluiten/nieuw item of sluiten/geen nieuw item van de userform. Ook wat betreft de opmaak moet deze regel blijven bestaan. Ik zal dit op een of andere manier zien te omzeilen om rij 4 bestaand te houden.

2: In kolom G staan kruisjes als iets afgehandeld is. Dit kan ook naderhand als het item al toegevoegd is. Maar met de beveiliging er dan op, gaat het niet lukken. Nu kan de beveiliging opgeheven worden, maar de gebruikers kunnen ook mensen zijn die deze kennis niet hebben van Excel.

Wellicht kan iemand mij helpen om dezebeveiligingsfenomenen op te lossen.

Marcel
 
Laatst bewerkt:
Op vraag 1 weet ik zo snel geen antwoord op.
Vraag 2;
2: In kolom G staan kruisjes als iets afgehandeld is. Dit kan ook naderhand als het item al toegevoegd is. Maar met de beveiliging er dan op, gaat het niet lukken. Nu kan de beveiliging opgeheven worden, maar de gebruikers kunnen ook mensen zijn die deze kennis niet hebben van Excel.
Je zou de cellen die in gevuld mogen worden, de eigenschappen er van kunnen aanpassen - Bescherming / Blokkering - het vinkje verwijderen.
Dan het blad beveiligen, nu kun je wel de Xen plaatsen als het goed is.
 
Hallo,

Excelamateur, bedankt voor de attentie. Toen ik het las, dacht ik...o ja dat is waar ook. Het was aan mijn aandacht ontslipt. Teveel met VBA bezig en zo deze optie wat vergeten. Inmiddels ook toegepast en werkt uit de kunst.

Met vraag 1 ben ik wat aan het stoeien geweest. Ik heb het geprobeerd te zoeken in een actie welke volgt als rij 4 gekozen is, maar VBA slikt niet hoe ik het opzette.

Sub Knop2_BijKlikken()
AllSheetsUnprotect
ActiveCell.Select

IF active.cell = Row 4 then msgbox "Rij 4 mag niet gekozen worden"
IF active.cell = Row 4 then end


Selection.EntireRow.Delete
MsgBox "Regel is verwijderd!"
AllSheetsProtect
End Sub

In rood staat hoe ik het geprobeert heb.

We zoeken verder.

Marcel
 
Laatst bewerkt:
marcelvba ,

Probeer deze eens, zet hem achter het blad.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Row = 4 Then MsgBox "Rij 4 mag niet gekozen worden", vbOKOnly, "Foute keuze"
End Sub

Probeer deze code ook, dit in de Module.
Code:
Sub Knop2_BijKlikken()
  For Each ws In ThisWorkbook.Worksheets
    ws.Unprotect "jouwpaswoord"
  Next
  
ActiveCell.EntireRow.Delete
MsgBox "Regel is verwijderd!"

  For Each ws In ThisWorkbook.Worksheets
    ws.Protect "jouwpaswoord"
  Next
End Sub
 
Laatst bewerkt:
Marcelvba,

Hierbij nog wat (andere) suggesties:

ipv in de code steeds de beveiliging eraf halen en er weer opzetten kun je ook eenmalig in het Workbook open event zetten:

Code:
Private Sub Workbook_Open()
Dim WS As Worksheet
    For Each WS In Worksheets
        WS.Protect UserInterFaceOnly:=True
    Next
End Sub

Door die userinterfaceonly op true te zetten kun je middels VBA wel in beveiligde sheets handelingen uitvoeren maar de gebruiker kan zelf niks uitvoeren/wijzigen.
(Je moet wel eerst het bestand eenmalig opslaan sluiten en weer openen om te zorgen dat de code werkt)

Verander jouw code achter de Knop regel verwijderen als volgt om regel 4 niet te kunnen verwijderen:
Code:
Sub Knop2_BijKlikken()
    If ActiveCell.Row = 4 Then MsgBox "Rij 4 mag niet gekozen worden", vbOKOnly, "Foute keuze": Exit Sub
    ActiveCell.EntireRow.Delete
    MsgBox "Regel is verwijderd!"
End Sub

Tenslotte nog een manier om in kolom G de X-en te plaatsen of te verwijderen;
Plaats in het codeblok van sheet1 en middels een dubbelklik wordt er een X geplaatst / weggehaald:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column <> 7 Then Exit Sub
    With Target
        .Locked = False
        If .Value = "X" Then
            .Value = ""
        Else
            .Value = "X"
        End If
        .Locked = True
        .Offset(0, -1).Select
    End With
End Sub
 
Hier een oplossing voor rij4
volgens mij wil je rij 1 tot en met 4 niet verwijderen.
voeg eventueel zelf een msgbox toe, zodat je zeker weet dat de bewerking is uitgevoerd.
Code:
Sub Knop2_BijKlikken()
ActiveSheet.Unprotect
With ActiveCell
    If .Row > 4 Then .EntireRow.Delete
End With
ActiveSheet.Protect
End Sub
 
Laatst bewerkt:
Hallo,

Iedereen bedankt voor alle suggesties. Ik heb ze allemaal uitgeprobeerd en een paar ook gebruikt.

Het kruisje zetten gaat uit de kunst, in een beveiligde werkblad welke automatisch geactiveerd wordt bij het openen. Rij 1 t/m 4 kan niet meer verwijderd worden en heb een msgbox toegevoegd om het te verduidelijken dat het niet kan....

Op naar de volgende uitdagingen.

Nogmaals bedankt,

Marcel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan