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

Code unprotect/protect met CommandButton opdracht

Status
Niet open voor verdere reacties.

Esducsafe

Gebruiker
Lid geworden
2 sep 2009
Berichten
185
Beste Helpers,
Code Protect tijdelijk uitschaken (met code Unprotect) bij uitvoeren opdracht met CommandButton gevonden, maar bij het afsluiten (Sheet instellen in Protectmodus) zoekt de opdracht in alle Wsheets. Weet iemand hoe de Code aangepast moet worden, zodat niet alle Sheets maar alleen de actieve Sheet door de Code gelezen wordt?
Eigen pogingen code aan te passen leverden helaas niet het gewenste resultaat op!
Alvast bedankt.
mvg
Esko



Code:
Private Sub CommandButton1_Click()
Dim Sheet As Worksheet
    For Each wSheet In Worksheets
        If wSheet.ProtectContents = True Then
            wSheet.Unprotect Password:="99"
        Else
            wSheet.Protect Password:="99"
        End If
      Next wSheet
'Unload Me
Application.ScreenUpdating = False
If CommandButton1.Caption = "VBR" Then
CommandButton1.Caption = "WTR"
On Error Resume Next
    Dim intCounter As Integer
    For intCounter = 6 To 459
    If Sheets(1).Cells(intCounter, 5).Value = 0 Then Sheets(1).Cells(intCounter, 5).EntireRow.Hidden = True
Next intCounter
    ElseIf CommandButton1.Caption = "WTR" Then
CommandButton1.Caption = "VBR"
On Error Resume Next
    With Sheets(1)
    .[B5:B459].EntireRow.Hidden = False
    .[A5:A459].EntireRow.Hidden = False
End With
End If
Application.ScreenUpdating = True
End Sub
 
Code:
If ActiveSheet.ProtectContents = True Then
        ActiveSheet.Unprotect Password:="99"
    Else
        ActiveSheet.Protect Password:="99"
    End If
 
Laatst bewerkt:
Beste Rudi,
Met je bijdrage aan de slag geweest. Opdracht Sheet beveiliging opheffen en instellen werkt nu goed met opdracht verbergen regel (VBR). Maar nu werkt de opdrachtcode weer toonen regel (WTR) niet. Geprobeerd uit te vinden waardoor dit zo is, maar ik kom er niet uit.
Weet jij of een andere helper waarom de Code "weer toonen regel" niet werkt?
Alvast bedankt.
Mvg
Esko


Code:
Private Sub CommandButton1_Click()
        Application.ScreenUpdating = False
     If ActiveSheet.ProtectContents = True Then
        ActiveSheet.Unprotect Password:="99"
    Else
        ActiveSheet.Protect Password:="99"
    End If
    If CommandButton1.Caption = "VBR" Then
        CommandButton1.Caption = "WTR"
On Error Resume Next
    Dim intCounter As Integer
    For intCounter = 6 To 459
    If Sheets(1).Cells(intCounter, 5).Value = 0 Then Sheets(1).Cells(intCounter, 5).EntireRow.Hidden = True
Next intCounter
    ElseIf CommandButton1.Caption = "WTR" Then
        CommandButton1.Caption = "VBR"
On Error Resume Next
    With Sheets(1)
    .[B5:B459].EntireRow.Hidden = False
    .[A5:A459].EntireRow.Hidden = False
End With
End If
Application.ScreenUpdating = True
End Sub
 
Laatst bewerkt:
Esducsafe,

Je heb je blad beveiligd en dan werkt het niet.
Ik denk dat hij het nu wel doet.
Code:
Private Sub CommandButton1_Click()
        Application.ScreenUpdating = False
     If ActiveSheet.ProtectContents = True Then
        ActiveSheet.Unprotect Password:="99"
    Else
        ActiveSheet.Protect Password:="99"
    End If
    If CommandButton1.Caption = "VBR" Then
        CommandButton1.Caption = "WTR"
On Error Resume Next
    Dim intCounter As Integer
    For intCounter = 6 To 459
    If Sheets(1).Cells(intCounter, 5).Value = 0 Then Sheets(1).Cells(intCounter, 5).EntireRow.Hidden = True
Next intCounter
    ElseIf CommandButton1.Caption = "WTR" Then
        CommandButton1.Caption = "VBR"
    ActiveSheet.Unprotect Password:="99"
'On Error Resume Next
    With Sheets("Blad1")    
    .[B5:B459].EntireRow.Hidden = False
    .[A5:A459].EntireRow.Hidden = False
    ActiveSheet.Protect Password:="99"
End With
End If
Application.ScreenUpdating = True
End Sub
 
Laatst bewerkt:
Code unprotect/protect werkt met CommandButton opdracht maar...

Beste Wim,
Dank voor je bijdrage. Misschien was mijn bericht over de opgetreden fout niet eenduidig. De fout (die ik niet kan oplossen) zit in de opdrachtcode WTR (toonen regel). Deze opdracht moet nadat VBR (verbergen regel) is uitgevoerd door weer op de CommandButton te klikken ervoor zorgen dat niet gebruikte regels weer getoont worden. Voordat de codes voor proctect/unprotect werden toegevoegd werkte VBR en WTR opdrachten dus wel. Ik hoop dat mijn uitleg nu wel duidelijk is, anders hoor ik dat graag. Weet jij waarom de opdrachtcode WTR niet wordt uitgevoerd?
Mvg,
Esko
 
Laatst bewerkt:
Esducsafe.

Ik ben een poosje weg geweest vandaar dat ik zo laat reageer.
Als ik de Protect en Unprotect code weg haal doet hij precies het zelfde als bij de code van mij.
Ik krijg het niet voor elkaar om de regels te verbergen en de lege regels weer te tonen.
Dat is toch de bedoeling als ik het goed begrijp?

Doe anders een voorbeeld bestandje waar de code die je eerst had wel werkt.
 
Code:
Private Sub CommandButton1_Click()
  Application.ScreenUpdating = False
  If ActiveSheet.ProtectContents Then ActiveSheet.Unprotect "99"
  Activesheet.rows("5:459").hidden=false   
   If CommandButton1.Caption = "VBR" Then
     For j = 6 To 459
      activesheet.rows(j).hidden=activesheet.Cells(j, 5)= 0 
    Next 
  End If
  CommandButton1.Caption = iif(CommandButton1.Caption ="VBR","WTR","VBR")
  ActiveSheet.Protect "99"
  Application.ScreenUpdating = True
End Sub
 
Laatst bewerkt:
Code Unprotect/Protect werkt nu met CommandButton opdracht

Beste Rudi, SNB en Wim,
Na wat nadenken en trial en error ingaven, heb ik bijgaande oplossing gevonden. Welicht dat de programmacodes niet top zijn, wilde ik jullie toch het resultaat (zie bijlage) werkend toonen.
Als mijn VBA programmacode nog verbeterd kan worden hoor ik dat graag. Alle bedankt!
Mvg
Esko

Code:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If ActiveSheet.ProtectContents = True Then
ActiveSheet.Unprotect Password:="99"
End If
If CommandButton1.Caption = "VBR" Then
CommandButton1.Caption = "WTR"
On Error Resume Next
Dim intCounter As Integer
For intCounter = 6 To 459
If Sheets(1).Cells(intCounter, 5).Value = 0 Then Sheets(1).Cells(intCounter, 5).EntireRow.Hidden = True
Next intCounter
ElseIf CommandButton1.Caption = "WTR" Then
CommandButton1.Caption = "VBR"
On Error Resume Next
With Sheets(1)
.[B5:B459].EntireRow.Hidden = False
.[A5:A459].EntireRow.Hidden = False
End With
End If
If CommandButton1.Caption = "WTR" Then
CommandButton1.Caption = "WTR"
ActiveSheet.Protect "99"
Application.ScreenUpdating = True
End If
End Sub
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan