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

Bij beveiligd werkblad werkt vba script via togglebutton niet

Status
Niet open voor verdere reacties.

Friend

Verenigingslid
Lid geworden
31 jan 2009
Berichten
1.137
Beste forummers,

Dankzij HSV - Harry, gebruik ik deze code :

Code:
Private Sub ToggleButton1_Click()
Dim cl As Range, y As Long, c As Range
With ToggleButton1
    y = IIf(.Value, 1, 2)
 .Caption = "vertalen in het " & IIf(.Value, "Nederlands", "Engels")
End With
For Each cl In Columns(2).SpecialCells(2)
 Set c = Sheets("soorten").Columns(y).Find(cl, , xlValues, xlWhole)
     If Not c Is Nothing Then
       If y = 2 Then
         cl = c.Offset(, -1).Value
       Else
         cl = c.Offset(, 1).Value
       End If
    End If
 Next cl
End Sub

om wat titels te vertalen.

Zeer blij mee, echter als ik het werkblad beveilig krijg ik een foutmelding bij het via de togglebutton uitvoeren van deze code.

Hoe kan ik dit oplossen als ik het werkblad toch wil beveiligen?

Hartelijk dank

Friend
 

Bijlagen

  • melding1.jpg
    melding1.jpg
    37,7 KB · Weergaven: 45
Dan moet je eerst de beveiliging uitzetten. In zijn simpelste vorm, als je geen wachtwoord hebt, doe je dat zo:
Code:
    If Me.Protect = True Then Me.Unprotect
Heb je wel een wachtwoord, dan moet je dat als parameter meegeven.
 
Wel niet vergeten de beveiliging er terug op te zetten:
Code:
Private Sub ToggleButton1_Click()
On Error GoTo oeps
Dim cl As Range, y As Long, c As Range
ActiveSheet.Unprotect 'eventueel aanvullen met wachtwoord
With ToggleButton1
    y = IIf(.Value, 1, 2)
 .Caption = "vertalen in het " & IIf(.Value, "Nederlands", "Engels")
End With
For Each cl In Columns(2).SpecialCells(2)
 Set c = Sheets("soorten").Columns(y).Find(cl, , xlValues, xlWhole)
     If Not c Is Nothing Then
       If y = 2 Then
         cl = c.Offset(, -1).Value
       Else
         cl = c.Offset(, 1).Value
       End If
    End If
 Next cl
oeps:
ActiveSheet.Protect 'eventueel aanvullen met wachtwoord
End Sub
 
Michel & Cobbe

Hartelijk dank voor jullie reactie:thumb::thumb: en :thumb: oplossing.
Werkt perfect alleen ik gebruik een wachtwoord, het moeilijkste van Nederland : 123 ;) hoe verwerk ik dit dan in de code?

Hoor weer graag

Thanks

Friend
 
Laatst bewerkt:
Michel & Cobbe, even goed nagedacht :D over jullie opmerkingen en de oplossing voor het wachtwoord gevonden.

Code:
Private Sub ToggleButton1_Click()
On Error GoTo oeps
Dim cl As Range, y As Long, c As Range
ActiveSheet.Unprotect "123"
With ToggleButton1
    y = IIf(.Value, 1, 2)
 .Caption = "vertalen in het " & IIf(.Value, "Nederlands", "Engels")
End With
For Each cl In Columns(2).SpecialCells(2)
 Set c = Sheets("soorten").Columns(y).Find(cl, , xlValues, xlWhole)
     If Not c Is Nothing Then
       If y = 2 Then
         cl = c.Offset(, -1).Value
       Else
         cl = c.Offset(, 1).Value
       End If
    End If
 Next cl
oeps:
ActiveSheet.Protect "123"
End Sub

Hartelijk dank nogmaals :thumb:

Friend
 
Laatst bewerkt:
Michel, Cobbe

Toch nog even een vraagje. Hoe kan ik voorkomen dat men in het lint onder ontwikkelaars aanklikt programmacode weergeven en dan het vba script ziet en het wachtwoord?

Friend
 
Door het VBAproject te beveiligen.
In de VBA-editor klik je het bedoelde VBAproject aan en via eigenschappen kan je een paswoord ingeven.
Beetje zoeken en je komt er wel uit.
 
Cobbe,

Super :thumb: gevonden:)

Hartelijk dank voor je hulp.

Friend
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan