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

Beveiligen voettekst

Status
Niet open voor verdere reacties.

Symphysodon

Gebruiker
Lid geworden
14 dec 2012
Berichten
468
Beste forummers,

Ik doe een poging om de voettekst te beveiligen tegen verwijderen. Daarvoor heb ik de volgende code gevonden.
Code:
Private Sub Workbook_Open()
 Application.CommandBars("Worksheet menu bar"). _
 Controls("View").Controls("&Header and Footer...").Enabled = False
 End Sub

 Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Application.CommandBars("Worksheet menu bar"). _
 Controls("View").Controls("&Header and Footer...").Enabled = True
 End Sub

Ik doe iets niet goed want ik krijg een foutmelding 5, verkeerde procedure aanroep.

grt
Marco
 

Bijlagen

  • beveiligen voettekst.xlsm
    18,6 KB · Weergaven: 57
Frappant, je kan het wel uitvoeren, maar uitzetten of onzichtbaar maken niet.
Code:
Application.CommandBars("Worksheet menu bar"). _
 Controls(3).Controls(7).Execute

Het gaat trouwens over het oude menu van Excel 2003 of de add-in die ik gebruik in Excel 2007.
 
Als iemand de neiging heeft om een voettekst te wijzigen heb je het te automatiseren proces onvoldoende gananalyseerd en geautomatiseerd.
Als de voettekst de juiste en gewenste informatie bevat blijft eenieder ervan af.
 
Laatst bewerkt:
Maak een macro die al jouw gewenste instellingen van de PageSetup weergeeft.
Roep deze macro dan aan in het Workbook-open / BeforePrint en BeforeSave event

Wanneer dan de voettekst wordt gewijzigd wordt deze weer teruggezet bij aanroepen van 1 van deze 3 events
 
@HSV Vandaar de foutmelding, wij gebruiken office 365

@SNB Ik heb de werkbalk van Excel al verborgen zodat het lastiger is om de voettekst te wijzigen. Niet helemaal zalig makend, is weer makkelijk zichtbaar te maken.

@EVR Jou code had ik ook al gevonden, maar de voettekst moet ook zichtbaar zonder dat je print of opslaat, vandaar dat de code van HSV me zo handig leek de voettekst is dan wel zichtbaar maar niet toegankelijk
 
@Symph

Dat is geen reaktie op mijn opmerking.

Waarom zou iemand de voettekst willen wijzigen ?
 
Geen idee, maar het feit dat het aangepast kan worden is voor de controlerende instantie aanleiding geweest daarvoor een tekortkoming te schrijven.
 
Kun je dat svp iets kryptischer beschrijven ?
 
Ik ben dan idd. heel benieuwd wat precies de bevinding is en of je dit dan wel in Excel op kan lossen. Want hoe je het ook went of keert, er zijn altijd mogelijkheden om de voettekst te wijzigen.
 
Oké, een iets cryptischer beschrijving. Alle geautomatiseerde Excel sheets (dat zijn er bij ons een stuk of 40) dienen beveiligd te zijn tegen oneigenlijk gebruik. Dat betekend onder andere dat formules ed. niet gewijzigd en/of verwijderd kunnen worden, maar ook versienummers en geldigheids datums. Ik was zo slim om die in de voettekst te plaatsen omdat je zelf al opmerkte; waarom zou je een voettekst willen veranderen. Het gaat in feite niet om het waarom, maar als het gebeurt kunnen er foutieve versies in omloop zijn met mogelijk grote gevolgen.

Heb je misschien een oplossing om het dubbelklikken in de werkbalk, om de werkbalk weer zichtbaar te maken, te disablen. De ingebruikzijnde sheets hebben geen werkbalk, na afsluiten van de sheet komt de werkbalk weer te voorschijn.
 
Een versie van een bestand verandert toch niet door het wijzigen van een voettekst ?

Ik hoop dat je gebruik maakt van sjablonen, zodat bestanden waarin gewerkt wordt altijd kopieën zijn van een niet te wijzigen sjabloon.
Dat betekent dat het sjabloon (en het versienummer in de voettekst) onveranderd blijft.
Excelfacilitetien uitschakelen is dé manier om herrie met je collega's te krijgen.
 
@snb
Wel als je het versienummer in de voettekst zet. In de meeste gevallen gebruik ik geen sjablonen de berekeningen zijn vaak te complex en ik heb al moeite genoeg om het in het werkblad goed voor elkaar te krijgen, laat staan dat ik het dan ook nog in een sjabloon moet gaan programmeren.

Voor herrie is geen tijd en de faciliteiten van Excel werken in dit geval alleen maar verwarrend. Het enige wat vaak gedaan moet worden is het verwerken van data en het uitprinten en opslaan van het rapport.

Wat ik wil (beveiligen voettekst) kan dus niet???

@E v R
Ik weet niet precies hoe je dat bedoelt, maar ik ga ermee aan de slag.
 
Voettekst is niet beveiigd als het werkblad beveiligd wordt gek genoeg. Als je het BeforePrint event gebruikt van het bestand (ThisWorkbook module) dan kan je daar de juiste kop en voetteksten laten instellen. Dit werkt alleen niet bij het afdrukvoorbeeld dat je krijgt als je Bestand, Afdrukken kiest. Maar wordt daarna uitgevoerd als je op afdrukken drukt en voordat er wordt afgedrukt. Probeer maar.
 
In de meeste gevallen gebruik ik geen sjablonen de berekeningen zijn vaak te complex en ik heb al moeite genoeg om het in het werkblad goed voor elkaar te krijgen, laat staan dat ik het dan ook nog in een sjabloon moet gaan programmeren.

Ga dan nog maar eens goed studeren op wat de funktie van sjablonen is.
Die besparen je meer werk dan ze kosten.
 
Ik heb het bestand aangepast en met een normale printopdracht werkt het.
Voor de printknop die we normaal gebruiken werkt het niet. Ik heb de code voor de printknop in ThisWokbook moet zetten om geen foutmeldingen te krijgen. Maar op het moment ik de voettekst wijzig en op de knop druk blijft de aanpassing onveranderd.

@SNB
Ga ik doen.
 

Bijlagen

  • beveiligen voettekst.xlsm
    33 KB · Weergaven: 54
Laatst bewerkt:
Hierbij in bijgaand voorbeeld, mijn suggestie(s),
Je moet wel een volatiele funktie (=now() ) op jouw sheet hebben staan om het calculate-event te triggeren wanneer er een printpreview wordt aangeroepen.
Zolang macro's uitvoeren geaktiveerd is, zal er altijd de oorspronkelijke Header worden geprint
 

Bijlagen

  • beveiligen voettekst.xlsm
    16 KB · Weergaven: 41
Super het werkt. Als ik iets wijzig in de voettekst en ik klik op ok dan blijft het afdrukvoorbeeld ongewijzigd. Ook de printknop werkt nu goed.

Het enige waar ik mee zit is dat dat de 'print' programma's in ThisWorkbook komen te zitten, ipv een module. Is er niet een manier om vanuit een module een sub uit ThisWorkbook op te roepen?

E v R bedankt.
 

Bijlagen

  • beveiligen voettekst.xlsm
    34,1 KB · Weergaven: 42
Dan in een module gebruikmaken van het auto open event en de rest in een klasse
zie voorbeeldje
 

Bijlagen

  • beveiligen voettekst.xlsm
    18,8 KB · Weergaven: 39
Zou dan niet volstaan ?

Code:
Private Sub Headers()
    With ThisWorkbook.ActiveSheet.PageSetup
      .LeftHeader = ""
      .LeftFooter = ""
      .RightHeader = ""
      .RightFooter = ""
      .CenterFooter = ""
      .CenterHeader = "version 25"
    End With
End Sub

je kunt de versie ook eenvoudig toekennen aan het document met een onzichtbare, en door de gebruiker niet te wijzigen benoemd bereik:

Code:
Sub M_snb()
   Names.Add "versie", "versie 25", 0
End Sub

Sub M_snb_read()
   MsgBox Names("versie")
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan