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

Lijst uitbreiden bij bladbeveiliging

Status
Niet open voor verdere reacties.

RoCompy87

Gebruiker
Lid geworden
13 nov 2006
Berichten
284
Hallo, ik heb een vraagje...

Ik heb in Excel een lijst (via de functie Lijst dus) gemaakt. Nu mogen bepaalde bereiken op het werkblad (en in die lijst) niet aangepast worden, omdat er formules achter zitten. Om dit op te lossen heb ik gebruik gemaakt van de optie 'Gebruikers toestaan om bereiken te bewerken'. Vervolgens heb ik het werkblad beveiligd. Het probleem is nu dat je geen rijen kunt invoegen in de lijst (- en dat is iets wat ook zou moeten mogen, ondanks de beveiliging). Je kunt bij de bladbeveiliging wel ervoor kiezen om toe te staan dat rijen ingevoegd mogen worden, maar dan worden in bepaalde kolommen van de lijst de formules niet meegekopieerd.
Weet iemand hier een oplossing voor? Of is het mogelijk cellen op een andere manier 'onbewerkbaar' te maken zonder het werkblad te beveiligen?

Alvast bedankt!
 
Je zou zelf een knop met een macro erachte kunnen maken die:
1. beveiliging uitschakeld,
2. een rij invoegt
3. de formules kopieert
4. beveiliging weer inschakelt.

De knop noem je bijvoorbeeld "rij invoegen".
 
Aan het idee van het gebruik van een macro had ik inderdaad nog niet gedacht, maar het nadeel is wel dat je niet zelf kunt bepalen wáár in de lijst de rij wordt toegevoegd (onder de laatste rij of ergens in het midden).
Als ik trouwens de Help-functie van Excel een beetje naga, heb ik ook het idee dat mijn probleem niet echt is op te lossen. Ik zou ook zonder lijst kunnen werken, maar het nadeel daarbij is wel dat formules niet worden doorgekopieerd als ik ergens in het midden een rij invoeg...
 
Je kunt de regel invoegen waar je wilt.
Je moet de macro dan zodanig uitbreiden dat je eerst opvraagt op welke regel je staat.
Op die plek voeg je een regel tussen en je kopieert de formules van de bovenliggende regel.

De instructie naar de gebruiker is dan: Markeer een regel en klik op de knop invoegen.

Bijgaand een voorbeeldje.
Wachtwoord is Jan

Let op: het gaat niet goed als je op de eerste regel tussenvoegd (want dan zijn er geen formules in de bovenliggende regel.) De afvanging daarvan mag je zelf uitdokteren.
 

Bijlagen

Toch nog even een vraagje... ik ben namelijk echt een leek op het gebied van VBA, maar is het ook mogelijk om de rij alleen binnen een bepaald bereik in te kunnen voegen?
De lijst waar een rij ingevoegd moet kunnen worden als het blad beveiligd is, bestaat uit een reeks datums die chronologisch staan gesorteerd (in één kolom, B), maar waar wel dubbele waarden in voor kunnen komen. Is er een constructie mogelijk dat met de macro alleen een rij wordt ingevoegd als in kolom B van de geselecteerde rij een datum staat die kleiner is dan x? (x is bijvoorbeeld 31 januari).


Code:
Private Sub CommandButton1_Click()
    RegelInvoegen
End Sub

Sub RegelInvoegen()
Dim myRij As Integer
myRij = ActiveCell.Row
    ActiveSheet.Unprotect Password:=""
    Rows(myRij).Insert Shift:=xlDown
    Rows(myRij - 1).Copy
    Rows(myRij).PasteSpecial (xlFormulas)
    Application.CutCopyMode = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="", AllowFiltering:=True
    Range("B" & myRij).Select
End Sub
 
Dan wordt het dit

Sub RegelInvoegen()
Dim myRij As Integer
myRij = ActiveCell.Row
If Cells(myRij, 2).Value < Range("c2").Value Then
MsgBox ("Rij invoegen hier niet mogelijk")
Else
ActiveSheet.Unprotect Password:=""
Rows(myRij).Insert Shift:=xlDown
Rows(myRij - 1).Copy
Rows(myRij).PasteSpecial (xlFormulas)
Application.CutCopyMode = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="", AllowFiltering:=True
Range("B" & myRij).Select
End If
End Sub

Vergelijkingsdatum staat hier in C2. Indien de datum kleiner is dan die in C2 komt er een melding.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan