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

Formule kopiëren verborgen & beveiligde cellen in een beveiligd werkblad

Status
Niet open voor verdere reacties.
Dit is duidelijk een bug in de implementatie van tabellen in Excel, normaal zou je inderdaad die cellen met formules niet kunnen wijzigen. En de formules zijn bij leeg maken van alle cellen in de tabel ook echt "weg". Wat de code van VenA doet is alle wijzigingen aan de tabel ongedaan maken zodra er meer dan 1 cel is gewijzigd.
 
  • Haal de beveiling van de sheet
  • Op dezelfde Tab ga je naar "Allow Users to Edit Ranges"
  • Klik op de genoemde bereik(en) en verwijder deze
  • Klik op OK
  • Nu kun je (ook in jouw tabel) niet meer geblokkeerde cellen verwijderen wanneer deze beveiligd zijn
 
De code doet inderdaad wat jkpieterse al aangeeft. Als je het Worksheet_Change event al gebruikt dan zal je de code moeten combineren. (was nergens vermeld en is in het bestandje ook niet te vinden)

@ E v R, met jouw oplossing ben je inderdaad van dit probleem af alleen werkt het sorteren van de tabel dan weer niet in een beveiligd blad.
 
Ik heb voor even de bestaande change gemakshalve verwijderd en de code in het testbestandje gezet maar er gebeurt niets. Wat moet ik aanvullend doen om de verwijderde formules weer in de tabel te krijgen?
 

Bijlagen

  • test.xlsm
    26,5 KB · Weergaven: 61
:confused: Ik snap er helaas niets meer van. Ik zie toch echt de change van 4 juli staan in het testbestand staan (onder het werkblad; niet onder workbook)
 
Mij lijkt het beter dat je eerst wat basiskennis van VBA tot je neemt. Dit gaat een onnodig lang draadje worden omdat je geen idee het waar je mee bezig bent, wat niet erg is, maar wel vermoeiend om steeds weer te antwoorden.

Dit staat er in de module van blad1 Knipsel.JPG
 
Ja, nu snap ik wat je bedoelt. Als ik het eerste gedeelte weghaal dan kan ik idd geen regel meer 'per abuis' verwijderen. Echter, het blijft wel mogelijk om van bv cel D4 de verborgen formule te deleten. Dit houdt de code dus blijkbaar niet tegen, een hele regel verwijderen wel.
Het is mijn bedoeling dat je wèl bv de formule in D4 kan overschrijven met een waarde maar dat je dit later ook weer ongedaan kan maken door bv de verborgen formule van D3 te kopiëren naar D4.
 
Laatst bewerkt:
De celeigenschappen van D4 al bekeken?
 
Laatst bewerkt:
Zie ik niets vreemds aan. Ik kopieer de cellen van rij 2 naar rij 4 dus ik zie daar niets vreemds aan. Het blijft mogelijk om bv D4 te deleten maar het is vervolgens niet mogelijk om de verborgen formule van D3 naar D4 te kopiëren. Zie ik dit verkeerd?
 
En is D4 Locked? Lijkt mij niet. Omdat we altijd blij worden van plaatjes er maar een plaatje bijgedaan. Hoe moeilijk kan het het zijn?

Knipsel.JPG
 
:shocked: Tja, ook het locken van de cel bied m.i. geen oplossing. Als ik deze lock en gebruikers dus toegang moet geven (om voornoemde reden) om gelockte cellen te selecteren kan ik de formule eruit gooien en krijg ik deze in het beveiligd bestand er niet meer in.
 
Dit soort hogere wiskunde gaat mij te ver. Mogelijk dat er iemand anders iets van begrijpt. Dus succes verder met de vraag.
 
.... ik probeer dit op een andere manier op te lossen.

Zou je mij wel nog met het volgende kunnen helpen. Ik probeer 2 codes naast elkaar te laten werken i.c. de change en de selection.change in bijgaand voorbeeld. Hij loopt echter steeds steeds vast op de "undo".
Hoe kan ik dit voorkomen?
 

Bijlagen

  • test foutmelding.xlsm
    29,8 KB · Weergaven: 55
Hoe zou een userform deze 2 codes werkend krijgen? Een userform is toch meer bedoeld voor het vullen van een database? Ik dacht eigenlijk meer om deze 2 codes in 1 vorm te gieten zoals door VenA voorgesteld alleen lukt mij dit niet. Zou dit wel kunnen werken of werken deze codes zich altijd tegen?
 
Is dit je bedoeling?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    With Me.ListObjects(1)
        If Intersect(Target, ActiveSheet.ListObjects(1).Range) Is Nothing Then Exit Sub
        If Target.Count > 1 Then
            With Application
                .EnableEvents = False
                .Undo
                .EnableEvents = True
            End With
        ElseIf Target.Address = .DataBodyRange(.ListRows.Count, 3).Address Then
            Application.EnableEvents = False

            .ListRows.Add
            .DataBodyRange(.ListRows.Count, 1).Resize(, 17).Locked = False

            Application.EnableEvents = True
        End If
    End With
End Sub
 
Beste Jan-Karel,

ook met jouw code loopt ie vast op de ".Undo".
Ik moet het werkblad beveiligen wil deze code werken. Kan dit te maken hebben met het beveiligd werkblad? Waar zou ik dan de (un)protect in dienen te voegen?
 
Unprotect direct aan het begin en protect aan het einde van die macro.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan