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

Cellen beveiligen en verbergen

Status
Niet open voor verdere reacties.

InYourHonor1987

Nieuwe gebruiker
Lid geworden
19 nov 2020
Berichten
3
Ik heb een heel complexe Excel met macro's om een klimatogram te maken dat zich automatisch aanpast aan de waarden van de verticale assen.
Nu de berekeningen kloppen, wil ik er graag voor zorgen dat de gegevens van neerslag en temperatuur + de locatie kunnen aangepast worden en de rest onzichtbaar/onveranderbaar wordt.

Ik kan de cellen wel beveiligen, maar dan geeft hij steeds andere foutmelding. Ook worden de macrocodes aangepast want mijn klimatogram verandert niet mee zoals ik het zou willen.

Is er iemand die me hierbij kan helpen?
 

Bijlagen

Je VBA omgeving is beveiligd met een wachtwoord. Daar kunnen we dus niets mee.
Maar aangaande het werkblad: je kunt toch de cellen die aangepast mogen worden met de hand, gewoon selecteren en bij Cel eigenschappen de beveiliging uitschakelen? Daarna het blad beveiligen, zou moeten werken..
 
Het probleem hier is dat bij bladbeveiliging ook de grafiek wordt beveiligt.
En VBA probeert via een change event juist de as-instellingen van de grafiek te beïnvloeden.

Je kunt dit doen door tijdelijk de beveiliging eraf te halen in de code.
(Wachtwoord is "pass")

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim reprotect As Boolean
Dim strHuidige_cel As String
strHuidige_cel = ActiveCell.AddressLocal
    If ActiveSheet.ProtectContents = True Then
        ActiveSheet.Unprotect "pass"
        reprotect = True
    Else
        reprotect = False
    End If
ActiveSheet.ChartObjects("Grafiek 2").Activate
    With ActiveChart
        .Axes(xlValue).MinimumScale = IIf(Range("B15").Value > 0, 0, Range("B15").Value * 2)
        .Axes(xlValue).MaximumScale = Range("B16").Value
        .Axes(xlValue, xlSecondary).MinimumScale = IIf(Range("B15").Value > 0, 0, Range("B15").Value)
        .Axes(xlValue, xlSecondary).MaximumScale = Range("B16").Value / 2
    End With
Range(strHuidige_cel).Select
    If reprotect = True Then
        ActiveSheet.Protect "pass"
    End If
End Sub
 
Laatst bewerkt:
Ook zonder VBA is dit te doen door bij het aanzetten van Bladbeveiliging een vinkje te zetten voor Objecten bewerken...en eventueel Scenario's bewerken.
Bestaat wel de kans dat je je grafiek versleept per ongeluk. Dit kun je weer ondervangen door in de eigenschappen van de grafiek bij Grootte een vinkje te plaatsen voor hoogte-breedteverhouding vergrendelen. Daarna blad weer beveiligen met bovengenoemde opties.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan