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

'Opslaan' en 'Opslaan als' uit menu (tijdelijk) deactiveren

Status
Niet open voor verdere reacties.

Chiel001

Gebruiker
Lid geworden
16 dec 2008
Berichten
41
Ik wil in mijn werkboek 'Bestand ->Opslaan' en 'Bestand -> Opslaan als' (tijdelijk) deactiveren. Ook het diskette icoon dient uitgeschakeld te worden. Dit alles omdat betreffend werkboek middels een macro opgeslagen wordt. Wie kan mij laten weten hoe ik dit realiseren kan ??
 
Ik wil in mijn werkboek 'Bestand ->Opslaan' en 'Bestand -> Opslaan als' (tijdelijk) deactiveren. Ook het diskette icoon dient uitgeschakeld te worden. Dit alles omdat betreffend werkboek middels een macro opgeslagen wordt. Wie kan mij laten weten hoe ik dit realiseren kan ??

Bestudeer eens het BeforeSave event in VBA, en daarbij het Cancel argument in dat event.

Cancel = True laat toe om het opslaan niet toe te passen.

Wigi
 
Wigi, bedankt voor je (wederom..) snelle reactie. Ik ga zoeken en kijken of ik er uit kom. Zo niet, dan meld ik mij weer ;)
 
....toch nog een vraag...

Als in onderstaande toevoeg kan ik inderdaad niet meer opslaan vanuit het Excel menu, echter kan ik dan ook niet opslaan via mijn macro. Hoe kan ik dit corrigeren ??

Private Sub App_WorkbookBeforeSave(ByVal Wb As Workbook, _
ByVal SaveAsUI As Boolean, Cancel as Boolean)
MsgBox("Opslaan middels button")
Cancel = True
End Sub
 
De regel met Cancel zou je bijvoorbeeld kunnen aanpassen zodat het eerst kijkt of er ergens in een bepaalde cel iets staat (of niet staat). Of in een Naam in jouw bestand kan je een bepaalde waarde bijhouden. Jouw opslaan code moet dan eerst die cel of die Naam aanpassen en dan leest de Cancel = ... regel uit dat er iets staat waardoor opslaan mogelijk moet zijn.

Wigi
 
Het als dan niet opslaan is in dit geval niet afhankelijk van bepaalde inhoud in een cel. Wat ik probeer is het volgende; indien men probeert op te slaan middels 'Opslaan' of 'Opslaan als' of het diskette icoon dient het werkboek volgens onderstaande macro opgeslagen worden:

Sub CommandButton2()
Application.CommandBars(1).Enabled = True
Application.CommandBars("Standard").Visible = True
Application.CommandBars("Formatting").Visible = True
Application.DisplayFormulaBar = True
Application.DisplayStatusBar = True
BooleanForClosing = True
Application.DisplayAlerts = False
Worksheets("Totalen 2009").Range("S3") = Now
ActiveWorkbook.SaveAs Range("R1") & "\" & "FC 2009 " & Range("N1").Value
ActiveWorkbook.SaveAs Filename:="C:\" & "FC 2009 " & Range("N1").Value
MsgBox "Bestand is opgeslagen op (1) netwerk en (2) lokale harde schijf (C:\FC 2009 <naam>.xls)"
Application.DisplayAlerts = True
ActiveWorkbook.Close
End Sub
 
Warm B. bedankt voor de tip. Ik heb het alsvolgt opgelost:

Private Sub Workbook_Activate()
Application.CommandBars("Worksheet Menu Bar").FindControl _
(ID:=3, Recursive:=True).Enabled = False
Application.CommandBars("Worksheet Menu Bar").FindControl _
(ID:=748, Recursive:=True).Enabled = False
Application.CommandBars("Worksheet Menu Bar").FindControl _
(ID:=3823, Recursive:=True).Enabled = False
Application.CommandBars("Worksheet Menu Bar").FindControl _
(ID:=846, Recursive:=True).Enabled = False
'Application.CommandBars("Standard").FindControl(ID:=3).Enabled = False

End Sub

Private Sub Workbook_Deactivate()
Application.CommandBars("Standard").Reset
Application.CommandBars("Worksheet Menu Bar").Reset
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan