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

Behouden van celinhoud

Status
Niet open voor verdere reacties.

jzeedijk

Gebruiker
Lid geworden
30 jul 2003
Berichten
926
Weer een handige tool.

Deze tool voorkomt dat van de cellen B4:B9 de inhoud gewist wordt, behalve wanneer het 'wachtwoord' in E1 is ingevoerd.

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Range("B2") = Target.Formula
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Rij = ActiveCell.Row: Kol = ActiveCell.Column
If Rij > 3 And Rij < 10 And Kol = 2 And Range("E5") <> "zee" Then
If ActiveCell.Formula <> Range("B2").Formula Then ActiveCell.Formula = Range("B2").Formula
End If
End Sub

Jeroen
 
Nogal een vreemde manier van beveiligen vind ik, die bovendien niet werkt (als je de code hebt geplaatst kun je B4:B9 nog zo veel weizigen als je wil).
Een veel eenvoudiger manier om te voorkomen dat de inhoud van de betreffende cellen wordt gewist, lijkt mij om B4:B9 te blokkeren en dan het werkblad te beveiligen.
 
Hoi fra,

Het wachtwoord moet overigens in E5 staan in plaats van E1!

Het voordeel van mijn macro'tje is dat slechts een paar cellen 'beveiligd' zijn, niet het hele werkblad. Bovendien kun je de opmaak nog aanpassen enzovoorts. Aanpassen van de formules door de beheerder kan ook snel even tussendoor.

Stel je zet in A4:A9 de getallen 4-9
en in B4:B9 de formule =index(B$21:B$9999;$a4)

If ActiveCell.Formula <> Range("B2").Formula Then
Rij0 = Cells(Rij, 1) + 20: Cells(Rij, Kol) = C
ActiveCell.Formula = Range("B2").Formula
Cells(Rij0, Kol)=C
End If
(Klein foutje)

Dan heb je heel eenvoudig een database gecreeerd. Maar je kunt ook andere dingen doen voordat de formule aangepast wordt.

Jeroen
 
Laatst bewerkt:
Geplaatst door jzeedijk
Het wachtwoord moet overigens in E5 staan in plaats van E1!
Dat had ik wel gezien, maar ook dan werkt je code niet !
Geplaatst door jzeedijk
Het voordeel van mijn macro'tje is......
Onjuist Jeroen, je moet goed lezen. Ik schreef in mijn vorig bericht dat je B4:B9 moest blokkeren en dus niet de andere cellen !
Geplaatst door jzeedijk
Stel je zet in A4:A9 de getallen 4-9
en in B4:B9 de formule =index(B$21:B$9999;$a4)
If ActiveCell.Formula <> Range("B2").Formula Then
Rij0 = Cells(Rij, 1) + 20: Cells(Rij0, Kol) = C
ActiveCell.Formula = Range("B2").Formula
Cells(Rij, Kol)=C
End If
Dan heb je heel eenvoudig een database gecreeerd...

Nee, dan heb je wederom een macro die foutmeldingen geeft....
 
Hoi fra,

Hoe kan het dat het bij mij wel werkt en bij jou niet?

Wachtwoord in middels in E1 gezet?

Jeroen
 

Bijlagen

Zoals elke zorgvuldige lezer kan constateren: de bijlage komt niet overeen met de code zoals je die in je vorige bericht plaatste. Dat is geen fair play, doch dat terzijde. De code deugt niet.
Waar het om gaat namelijk: je beweerde dat de code voorkomt dat de inhoud van de cellen B4:B9 wordt gewist. Dat is echter allerminst het geval. Mocht een lezer hieraan twijfelen, dan moet hij of zij je werkblad maar testen. Men ziet dan vanzelf welke effecten er plaatsvinden.
 
Hoi fra,

Even de code aangepast, typefoutje gemaakt (?), geen opzet.

Door dit spreadsheet kun je de waarde van de cel wijzigen, maar niet de formule.

Ik denk dat er een verschil is in interpretatie van de inhoud van de cel, voor mij is dat de tekst in de formulebalk en niet de waarde die weergegeven wordt in de cel.

Jeroen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan