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

VBA script voor: Eigenschappen- kenmerken- Alleen lezen

Status
Niet open voor verdere reacties.

Manke

Gebruiker
Lid geworden
15 dec 2006
Berichten
115
Hallo,

Ik wil graag het volgende:

Op een bepaald moment is een werkblad klaar en wil ik 'm middels een druk op de (zich op het werkblad bevindende) knop (met een hieraan geknoopte macro) het betreffende werkblad als "alleen lezen" kenmerken en afsluiten.

Normaal deed ik dit via de verkenner, rechtermuisklik op bestand, eigenschappen en Alleen lezen. Nu wil ik dit dus graag middels een scriptje vanuit het werkblad regelen.

Kan iemand mij hiermee helpen?

Groet
Manke
 
Met SaveAs kan je aangeven dat het bestand als ReadOnly moet worden opgeslagen.

Met vriendelijke groet,


Roncancio
 
Ik heb nu dit staan:

Sub defin()
ReadOnlyRecommended = False
ActiveWorkbook.Final = True
End Sub

" ReadOnlyRecommended = False" werkt nu niet.

"ActiveWorkbook.Final = True" werkt wel, dus hij is nu een beetje beveiligd, maar het liefst wil ik dat het werkblad gewoon wordt opgeslagen als "read only"... maar dat heb ik dus nog steeds niet voor elkaar :(
 
Ik bedoel zo iets:
Code:
ActiveWorkbook.SaveAs Filename:="C:\Helpmij", ReadOnlyRecommended:=True

Met vriendelijke groet,


Roncancio
 
Hey Roncario
Bedankt alvast voor het meedenken hoor.
Ik heb ActiveWorkbook.SaveAs Filename:="C:\Helpmij", ReadOnlyRecommended:=True erin gezet en het bestand wordt nu inderdaad weggeschreven als : helpmij.xlsm, maar wanneer ik via de verkenner kijk naar naar de eigenschappen van het bestand, dan staat "alleen lezen" niet automatisch aangevinkt. Open ik het bestand, dan zegt ie wel dat ie een alleen lezen bestand is! Zijn dit 2 verschillende dingen?

Maar heel graag zou ik willen dat ie het bestand opslaat onder zn huidige naam en in de "Alleen lezen" modus...

Zou je me hier nog 1 keertje mee willen helpen?

Manke
 
Manke, Dit doet het wel...
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    SetAttr Me.FullName, vbReadOnly
End Sub
Plaats 'm in de ThisWorkbook-module.

Groet, Leo
 
Tja Roncario, dat snapte ik ook wel. Alleen.... wat ik aan het maken ben is een model.
Via een soort van CRM bestand wordt het (read only) model aangeroepen en wordt het nieuw gecreerde bestand weggezet met een uniek, automatisch gegenereerde bestandsnaam. Daarna wordt het bestand geopend en kan er in gewerkt worden.

Ik ben nu het model aan het maken en heb dus niet te maken met een vaste bestandsnaam maar met een steeds verschillende.

Op een bepaald moment wil ik een uit het model gecreeerde bestand gewoon beveiligen... dmv een knop in het werkblad wil ik de mogelijkheiod bieden het betreffende bestand "definitief" te maken, dat wil zeggen "Alleen lezen" te maken.

Dus daarnaar was ik op zoek...

Hoop dat je me nog ff wil helpen.

Ik heb nu dit:


Private Sub CommandButton1_Click()
result = MsgBox("U staat op het punt deze specificatie op te slaan en definitief te maken. Als een document als definitief wordt gemarkeerd, worden functies als typen, bewerkingsopdrachten en revisiemarkeringen uitgeschakeld en wordt het document alleen-lezen. Bovendien wordt de eigenschap Status van het document ingesteld op Definitief.Wilt u doorgaan?", vbYesNo, " ! ! A T T E N T I E ! ! ")


If result = vbYes Then
Sheets("HOOFDMENU").Select
Range("b4").Select
ActiveCell.Value = "- - D E F I N I T I E F - - - - D E F I N I T I E F - - - - D E F I N I T I E F - - - - D E F I N I T I E F - -"
Range("c7").Select
ActiveWorkbook.Final = True
ReadOnlyRecommended = True
Else
MsgBox ("De specificatie wordt niet definitief afgesloten.")
End If
End Sub
 
Manke, (weet niet of je in de gaten had dat een ander in je draadje was gekomen:D)

Zoiets dan?
Code:
Private Sub CommandButton1_Click()
result = MsgBox("U staat op het punt deze specificatie op te slaan en definitief te maken. Als een document als definitief wordt gemarkeerd, worden functies als typen, bewerkingsopdrachten en revisiemarkeringen uitgeschakeld en wordt het document alleen-lezen. Bovendien wordt de eigenschap Status van het document ingesteld op Definitief.Wilt u doorgaan?", vbYesNo, " ! ! A T T E N T I E ! ! ")


If result = vbYes Then
Sheets("HOOFDMENU").Select
Range("b4").Value = "- - D E F I N I T I E F - - - - D E F I N I T I E F - - - - D E F I N I T I E F - - - - D E F I N I T I E F - -"
'Range("c7").Select
SetAttr ActiveWorkbook.FullName, vbReadOnly
Else
MsgBox ("De specificatie wordt niet definitief afgesloten.")
End If
End Sub

(code altijd graag tussen code-tags!!!)

Groet, Leo
 
met code-tags en zonder select en/of activate
Code:
Private Sub CommandButton1_Click()
  If MsgBox("U staat op het punt deze specificatie op te slaan en definitief te maken. Als een document als definitief wordt gemarkeerd, worden functies als typen, bewerkingsopdrachten en revisiemarkeringen uitgeschakeld en wordt het document alleen-lezen. Bovendien wordt de eigenschap Status van het document ingesteld op Definitief.Wilt u doorgaan?", vbYesNo, " ! ! A T T E N T I E ! ! ")=vbYes Then
    Sheets("HOOFDMENU").Range("b4").Value = replace(string(4,"-"),"-","-- - - D E F I N I T I E F")
    SetAttr ActiveWorkbook.FullName, vbReadOnly
  Else
    MsgBox ("De specificatie wordt niet definitief afgesloten.")
  End If
End Sub
 
Laatst bewerkt:
Yesssss... tx Ginger, dat was het zetje dat ik nodig had (khad inderdaad niet gezien dat je al eerder had gereageerd... shame) Maare In hele grote lijnen doet ie nu wat ik wil dus het gaat lukken nu.
Ook Roncancio en SNB bedankt voor het meedenken en voor het mij op het goede spoor brengen!!

Toppie! Bedankt!

Manke!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan