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

Excel cellen beveiligen in tabellen

anjaddijkstra

Gebruiker
Lid geworden
21 aug 2020
Berichten
57
Ik wil in Excel cellen beveiligen tegen ongewenst bewerken (verwijderen van formules), maar de gegevens staan in tabellen omdat ik de mogelijkheid wil houden voor de gebruiker om regels toe te voegen. Zodra ik echter het werkblad beveilig kunnen er ook geen regels meer worden toegevoegd aan de tabel. Is hier een andere optie voor dan 9999 regels maar aan te maken?
Bij voorkeur niet met VBA, maar als het niet anders kan dan moet dat maar.
 
Bestandje zou nu handig zijn, ontdaan van gevoelige info.
 
als je er nu nog bij verteld welk blad je bedoeld zal he wel in orde komen
 
Het gaat eigenlijk om meerdere bladen, maar in ieder geval:
- Medicatie moet aangevuld worden wanneer iemand een nieuwe soort medicatie krijgt
- Voorraad moet aangevuld worden wanneer er nieuwe medicatie binnenkomt
- Bestellijst is draaitabel, ik ben er nog niet over uit of dit gebruikersvriendelijk genoeg is
- Besteld is draaitabel, is denk ik overbodig maar zou gebruikt kunnen worden
- Bewoners is een vast gegeven, kan alleen zijn dat naam van een bewoner wijzigt (verhuizing)
Dus voor de beveiliging gaat het om de eerste twee tabbladen.
Of heb je ook een tip voor het beveiligen van de bladen met de draaitabellen (wel kunnen uitvoeren uiteraard)?
 
Ik heb het een beetje veranderd, zal heus beter kunnen maar het is met vba.
Wel de blokkering er af halen als je hem wil gebruiken.
 

Bijlagen

Hoi Johan,

Super bedankt! Hier kan ik wel mee uit de voeten.

Nog een kleine uitdaging: stel een medewerker heeft het formulier fout ingevuld, dan kan het niet meer aangepast worden in de tabel door de gebruiker. Heb je een idee voor een macro om een regel te verwijderen, zodat de gebruiker daarna de regel opnieuw kan toevoegen?

Groetjes, Anja
 
Als je de fout er weer uit wilt halen dan is toch het nut van de beveiliging weer teniet gedaan.
Je kunt dan nl ook de goede regels er uitgooien.
Dus dan naar de beheerder gaan die het WW heeft en die kan dan het gaan wijzigen
 
Helaas is het niet zo simpel. Een foutje is zo gemaakt. Als je het zo in Excel laat staan zonder beveiliging kan het bijvoorbeeld al gewijzigd worden doordat er iets op het toetsenbord wordt gelegd (ik noem maar wat).
Ik zie het alleen gebeuren dat iemand het formulier invult, op akkoord klikt en dan tot de conclusie komt dat hij is vergeten de minimale voorraad in te vullen.
Maar zie nu dat ik dat ook kan ondervangen door bepaalde cellen wel open te zetten voor invullen.
Bericht automatisch samengevoegd:

Nog wel een andere: kan er een foutmelding in komen wanneer in de kolom Naam_medicatie een dubbele waarde staat? Melding van "dit medicijn is al ingevoerd bij deze bewoner"
 
Dag Johan,

Dit gaat niet helemaal goed. Het ziet er super uit, dat wel!!

Het gaat er om dat op het blad Medicatie elk medicijn maar één keer mag voorkomen bij een bewoner. Op het blad Voorraad mag het wel vaker voorkomen, omdat elke verpakking daar moet worden geregistreerd. Datums hoeven ook alleen op het blad Voorraad, maar dat werkt nu op zich al goed in het eerder gestuurde bestand.
Zie voorbeeld, de rood aangegeven (voorwaardelijke opmaak dubbele waarden) zouden niet mogen voorkomen. Het zou mooi zijn dat wanneer het formulier wordt ingediend er dan een melding komt en de regel niet toegevoegd wordt.
Knipsel.PNG
 
@anjaddijkstra
Welke Excel versie gebruik je eigenlijk? Sommige codes kunnen dan misschien aangepast -en/of verbeterd worden.

Duplicatiecontrole zonder alle rijen van de tabel te moeten doorlopen.
Code:
    Dim lRow&, evalstr
    lRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
   
    With ws
        evalstr = Evaluate("Match(""" & ComboBox1.Value & """&""" & ComboBox2.Value & """&""" & ComboBox3.Value & """," & _
            .Range("C1:C" & lRow).Address & "&" & .Range("D1:D" & lRow).Address & "&" & .Range("E1:E" & lRow).Address & ",0)")
    End With
    If Not IsError(evalstr) Then MsgBox "Deze medicatie is reeds geregistreerd!", vbExclamation + vbOKOnly, "Waarschuwing": Exit Sub
 
Ik vraag me af hoe je eraan uitgeraakt wie wat neemt en wanneer?
Dat gebeurt middels medicatielijsten die door de apotheek worden verstrekt. Dit is een wettelijke verplichting, dus kan niet anders. Hier zijn wel oplossingen voor, maar die zijn voor een kleine organisatie bijna niet betaalbaar. Deze lijst wordt vooral gebruikt om de voorraad te monitoren (hoeveelheid en vervaldata) en tijdig nieuwe medicatie te bestellen. En om dit gewoon één keer per week bij te houden.
 
Misschien nog een leuke uitdaging... in de Macro VerwijderRij() zou ik een foutmelding willen hebben wanneer de combinatie al gebruikt wordt in de tabel Voorraad (dan mag hij namelijk niet verwijderd worden).
Bericht automatisch samengevoegd:

Vraag mij af of het nu te gebruiken is @anjaddijkstra.
Wat vindt je van de beveiliging.
@Warme bakkertje had ook nog een optie, misschien kan hij het er zelf inzetten, hoe korter de code.
Sorry, kan het niet altijd gelijk testen en toepassen vanwege andere verplichtingen.
Ik kom er wel uit met het voorbeeld van @Warmebakkertje Heb zelf het bestand inmiddels al erg bewerkt en "opgeleukt" ;)
 

Bijlagen

Laatst bewerkt:
Nog steeds geen antwoord op mijn vraag welke Excelversie je gebruikt. :(
 
Microsoft® Excel® voor Microsoft 365 MSO (Versie 2511 Build 16.0.19426.20218) 64 bits

Maar het is voor een klant, en weet niet welke versie ze daar gebruiken. Is dat belangrijk?
 
Terug
Bovenaan Onderaan