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

Rijen verbergen en tonen op gedeeld en beveiligd werkblad

Status
Niet open voor verdere reacties.

caper

Nieuwe gebruiker
Lid geworden
27 okt 2020
Berichten
2
Wij hebben een excel-bestand (versie 2013) gemaakt waarin we met een VBA-script regels aan en uit willen zetten (tonen en verbergen). De werkmap is echter gedeeld, omdat er meerdere mensen tegelijkertijd in moeten werken en de tabbladen zijn beveiligd, om te voorkomen dat er ongewenste wijzigingen plaatsvinden.

Het deel van de beveiliging hadden we in eerste instantie omzeild door "protect/unprotect". Daardoor komen we echter weer in de problemen zodra het bestand gedeeld wordt. We hebben dus eigenlijk het ene probleem opgelost met een ander...

Iemand een oplossing?

Code:
Private Sub ButtonAlles_Click()
Application.ScreenUpdating = False

ActiveSheet.Unprotect ("wachtwoord")

If Sheets("Periode").FilterMode Then
        Sheets("Periode").ShowAllData
End If

'ALLES VERBERGEN'
 Set xAddress = Range("8:207")
 xAddress.EntireRow.Hidden = True
' Alle rijen van het bereik aflopen
  For Each c In Sheets("Onderlegger").Range("$AO$8:$AO$207")
' Checken of V aanwezig is in kolom
            If InStr(1, c.Text, "V", 1) Then
' Als WAAR dan rij tonen
       Rows(c.Row).Hidden = False
' Einde vraag
 End If
' Volgende rij
Next
' Einde macro

ActiveSheet.Protect ("wachtwoord"), AllowFiltering:=True, DrawingObjects:=False

End Sub
 
Ik weet niet precies wat voor probleem zich voordoet, maar probeer eens voor alle cellen via celeigenschappen de protection er af te halen en vervolgens alleen op de juiste cellen deze in te schakelen.

Zo is je code iig beter leesbaar

Code:
Private Sub ButtonAlles_Click()
Application.ScreenUpdating = False
    ActiveSheet.Unprotect ("wachtwoord")
    
       If Sheets("Periode").FilterMode Then Sheets("Periode").ShowAllData
          Range("8:207").EntireRow.Hidden = True
            
        For Each c In Sheets("Onderlegger").Range("$AO$8:$AO$207")
            If InStr(1, c.Text, "V", 1) Then Rows(c.Row).Hidden = False
        Next
        
    ActiveSheet.Protect ("wachtwoord"), AllowFiltering:=True, DrawingObjects:=False
Application.ScreenUpdating = True
End Sub
 
Laatst bewerkt:
Dat hebben we al gedaan en is het probleem dus niet. Ik krijg de foutmelding: "Methode Unprotect van klasse Worksheet is mislukt."

Dat heeft er waarschijnlijk mee te maken dat ik ook zelf de beveiliging van een tabblad er niet af kan halen zonder het delen ook te stoppen. Daarom ben ik op zoek naar ofwel een methode waarbij dat wel kan, of een methode om het oorspronkelijke probleem op te lossen, namelijk het verbergen van rijen op een beveiligd tabblad (Foutmelding: Eigenschap Hidden van klasse Range kan niet worden ingesteld.).

Ik hoop dat het zo iets duidelijker is.

De code is in ieder geval beter leesbaar. Dank daarvoor alvast!
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan