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

Hoe zorgen dat de werkbladnaam niet kan worden gewijzigd

Status
Niet open voor verdere reacties.

glda19

Terugkerende gebruiker
Lid geworden
14 jan 2008
Berichten
1.064
In de module thisworkbook staat er deze code
uitschakelen van de delete toets
rechtsklikken uitschakelen.
Maar ik via het menu opmaak op het lint nog altijd de naam van het werkblad veranderen
Er staat ook een code in vba om de werkbladen te beveiligen
Maar als ik het werkbook beveilig kan ik geen werkbladen toevoegen of verwijderen.

Code:
Private Sub Workbook_Activate()
Application.OnKey "{del}", "Message"
Application.CommandBars("Ply").enabled = False
End Sub
 
Laatst bewerkt:
Als je knoppen maakt voor het verwijderen en toevoegen van een blad kan je in de code eerst de beveiliging opheffen, de actie uitvoeren en de beveiliging er weer op zetten.
 
Het verwijderen en toevoegen van bladen gebeurt via vba. Ik kan via het lint menu opmaak nog de naam veranderen. Heb zelf geen knoppen voor verwijderen en toevoegen. Hoe kan ik zorgen dat ze de naam niet kunnen ? Anders gaat de vba code in de fout
 
Macro's die de mist ingaan omdat de gebruiker iets doet, zijn niet degelijk genoeg geschreven :). Gebruik Codename i.p.v. Name als je de naam van het werkblad echt nodig hebt. Die verandert namelijk niet.
Code:
Sub test()
Dim sht As Worksheet
    Set sht = ActiveSheet
    MsgBox sht.CodeName & vbLf & sht.Name
End Sub
 
ok maar dit is op het active blad. Wat als je verwijst naar een ander blad.
En kun je ook de echte naam blad1 gebruiken in een formule?
 
Je kan ook dit achter ieder werkblad zetten:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If ActiveSheet.Name <> "Blad1" Then ActiveSheet.Name = "Blad1"
End Sub

Waarbij je voor "Blad1" uiteraard de naam van het werkblad invult.
 
ik ben gestopt om je vragen te beantwoorden, ik ervaar alles als overkill, je luistert toch niet, je gaat koppig je eigen weg.

Op 1 of andere manier ben je bezig aan een projectje waarbij je het warm water opnieuw aan het uitvinden bent, eigenlijk bestaan er al tig gelijkwaardige excel's of andere apps.
Als je collega's willen proberen de boel op te naaien, het zal je niet lukken, beveiliging binnen excel is een lachertje.
Je kan op duizend manier iets proberen dicht te timmeren, maar echt waterdicht krijg je het nooit.
Soms is het gewoon beter de boel "open source" te maken en dan met de kritiek verder te gaan.
 
voor ons bestaat dat niet man is geen overkill
En vind het warm water niet uit.
Moet mij houden aan het systeem dat uit sap komt.
Met de zelfde code's en zo kan niet anders
Moest ik koppig zijn dan zou het toch niet werken zoals het nu werkt he cow18
das u gedacht
Gelukkig dat anderen zo niet denken
 
Laatst bewerkt:
je zit meer tijd te besteden aan het dichttimmeren dan aan de inhoud zelf.
Dat is goed zolang je iets idiot-proof wil maken, wat hier blijkbaar secondair is.
Bon, maar ik zwijg al.
 
Cow 18
De inhoud zelf is af man.
Zijn gedachten die op komen.
Maar kan het toch niet dicht timmeren.
Daar ik de code niet kan gebruiken die ze hier aan rijken om de naam van het werkblad terug te zetten. Daar het een jaartal is en ik niet weet wat jaartal er gestaan heeft
 
@edmoor
is goede code voor als je de naam weet van het werkblad. Maar wat met een dynamische naam.
Dus in mijn geval komt er jaarlijks een werkblad bij met het huidige jaar. En worden er maxium 5 jaar bij gehouden. Hoe kan ik dan weten wat het jaar van het werkblad is geweest
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If ActiveSheet.Name <> "Blad1" Then ActiveSheet.Name = "Blad1"
End Sub
 
Het lijkt me logisch dat je bij een nieuw werkblad die code er achter zet en dan de naam van dat specifieke werkblad gebruikt.
 
dat weet ik ook maar hoe doe je dat als het blad via code word toe gevoegd. Dus zonder dat ik vba code moet duiken
 
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
   MsgBox "1. een niveau hoger schieten" & vbLf & Sh.Name & vbLf & Sh.CodeName
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
   MsgBox "2. een niveau hoger schieten" & vbLf & Sh.Name & vbLf & Sh.CodeName
End Sub
 
Heb je al 'Protect Workbook' geprobeerd?
 
@ popipipo
Dit gaat totaal niet het werkboek beveiligen daar je de structuur beveiligd en je dus gen werkbladen kunt toevoegen
 
cow18
Uw code onder de werkbladcode geplaatst maar doet niks Spreekt de code niet aan
 
Ik heb de vraag niet in het geheel goed gelezen.

Mijn aandacht ging naar het niet kunnen wijzigen van de tabblad naam.
En dat bereik je met het werkboek beveiligen
Dat je ook geen tabbladen kunnen kunt toe voegen heb ik niet over nagedacht.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan