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

Macro gebruiken om de cellen in een rij te ongrendelen (beveiliging eraf halen)

Status
Niet open voor verdere reacties.

lodewijk007

Gebruiker
Lid geworden
13 jun 2014
Berichten
15
Beste excel experts,

Ik het volgende probleem:

Ik wil vooraan bij iedere rij drie drukknoppen (of een andere commando knop) die het volgende doet:
1e drukknop (staat in cel A2): als je 1 keer drukt bepaalde cellen in deze rij ongrendeld (b.v. D2, E2 en F2) en wanneer je nog een keer drukt die alle cellen in de rij weer vergrendeld.
2e drukknop (staat in cel B2): als je 1 keer drukt bepaalde cellen in deze rij ongrendeld (b.v. F2, G2 en H2) en wanneer je nog een keer drukt die alle cellen in de rij weer vergrendeld.
3e drukknop (staat in cel C2): als je 1 keer drukt bepaalde cellen in deze rij ongrendeld (b.v. E2, G2 en I2) en wanneer je nog een keer drukt die alle cellen in de rij weer vergrendeld.

Dit wil ik voor ongeveer 200 rijen toepassen dus mijn tweede vraag is of je deze drukknoppen makkelijk kan kopieren voor iedere rij.

Ik heb een simpel voorbeeld bestand in de bijlage dus hopelijk kan iemand dit bestand aanpassen, zodat deze bruikbaar is voor bovenstaande toepassing en daarbij natuurlijk kan uitleggen hoe ik dit eventueel zelf zou kunnen doen.

Alvast hartelijk bedankt!!!

Bekijk bijlage Voorbeeld voor macro.xlsx
 
WOW
Met alle respect maar heb je er zelf al eens even bij stilgestaan hoe onwaarschijnlijk jouw vraag klinkt ?
Jij wil dus 600 wisselknoppen op je werkblad met daaraan verbonden +/- 610 regels code om de hele boel aan te sturen.
Blokkeer de bovenste rij, zet daarin 3 wisselknoppen en baseer je code dan ofwel op het plaatsen van je cursor op de betreffende rij die moet vergrendeld/ontgrendeld worden en gebruik dan Activecell.row
Of je geeft elke rij een nummer dat je dan weer kan gebruiken in je code om in de juiste rij te vergrendelen/ontgrendelen.
 
Hartelijk bedankt voor je antwoord.

Zelf heb ik geen ervaring met macro's maken. Wat ik kan afleiden uit je antwoord is dat je eigenlijk bovenaan het blad drie drukknoppen plaatst en door vervolgens eerst cel A3 (of rij) te selecteren en vervolgens de drukknop in te drukken de cellen D3, E3 en F3 (in het geval van de eerste drukknop) ontgrendeld worden en vervolgens wanneer je nog een keer drukt alle cellen in die rij weer vergrendeld.

Is het mogelijk dat je een voorbeeld macro maakt in het Excel bestand dat ik heb meegestuurd?
 
Zie bijlage.
Selecteer een cel in kolom A en druk op de knop naar keuze.
 

Bijlagen

Hartstikke bedankt, is precies was ik zocht!!!! Misschien zou deze macro nog met het volgende aangevuld kunnen worden om het helemaal perfect (overzichtelijk) te maken.

1: De cellen die ontgrendeld worden een kleur geven (bij voorkeur lichtgrijs) en wanneer de cellen weer vergrendelt worden dat de standaard kleur weer terugkomt.
2: Kolom A,B en C voor de specifieke rij die ontgrendeld is een kleur krijgt indien alle cellen die ontgrendeld zijn een waarde/tekst bevat. Dus indien de eerste drukknop wordt gebruik om de cellen in rij 3 (D3, E3 en F3) te ontgrendelen dat vervolgens cel A3 de kleur groen krijgt indien alle cellen in rij 3 (D3, E3 en F3) een waarde\tekst bevatten.

Nogmaals bedankt voor de moeite die wordt genomen om dit probleem op te lossen!
 
Code:
Private Sub ToggleButton1_Click()
    With Blad1
        .Unprotect
        .Cells(ActiveCell.Row, 4).Resize(, 3).Locked = IIf(ToggleButton1, False, True)
        If WorksheetFunction.CountA(.Cells(ActiveCell.Row, 4).Resize(, 3)) = 3 Then
            .Cells(ActiveCell.Row, 1).Interior.Color = vbGreen
            .Cells(ActiveCell.Row, 4).Resize(, 3).Interior.ColorIndex = 15
        Else
            .Cells(ActiveCell.Row, 4).Resize(, 3).Interior.ColorIndex = 15
        End If
        If ToggleButton1 = False Then .Cells(ActiveCell.Row, 1).EntireRow.Interior.ColorIndex = xlNone
        .Protect
    End With
    ToggleButton1.Caption = IIf(ToggleButton1, "Vergr.", "Ontgr.")
End Sub

Private Sub ToggleButton2_Click()
        With Blad1
        .Unprotect
        .Cells(ActiveCell.Row, 6).Resize(, 3).Locked = IIf(ToggleButton2, False, True)
        .Cells(ActiveCell.Row, 6).Resize(, 3).Interior.ColorIndex = 15
        If ToggleButton2 = False Then .Cells(ActiveCell.Row, 6).Resize(, 3).Interior.ColorIndex = xlNone
        .Protect
    End With
    ToggleButton2.Caption = IIf(ToggleButton2, "Vergr.", "Ontgr.")
End Sub

Private Sub ToggleButton3_Click()
    With Blad1
        .Unprotect
        Application.Union(.Cells(ActiveCell.Row, 5), .Cells(ActiveCell.Row, 7), .Cells(ActiveCell.Row, 9)).Locked = IIf(ToggleButton3, False, True)
        Application.Union(.Cells(ActiveCell.Row, 5), .Cells(ActiveCell.Row, 7), .Cells(ActiveCell.Row, 9)).Interior.ColorIndex = 15
        If ToggleButton3 = False Then Application.Union(.Cells(ActiveCell.Row, 5), .Cells(ActiveCell.Row, 7), .Cells(ActiveCell.Row, 9)).Interior.ColorIndex = xlNone
        .Protect
    End With
    ToggleButton3.Caption = IIf(ToggleButton3, "Vergr.", "Ontgr.")
End Sub
 
Beetje laat, maar wilde alsnog je hartelijk bedanken om dit probleem op te lossen!!!!!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan