• 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 knop blokkeren

Status
Niet open voor verdere reacties.

knarfje

Gebruiker
Lid geworden
12 mrt 2001
Berichten
817
Hi,

Omdat ik een formulier heb gemaakt waarop een knop zit om het document op een bepaalde lokatie op te slaan wil ik in VBA regelen dat de blauwe opslaan knop in de werkbalk niet gebruikt kan worden.
Welke code gebruik ik daarvoor?

Thanks alvast van een vba noob:o
 
Beste knarfje ;)

Probeer deze code eens :

Code:
Private Sub Workbook_BeforeSave(Cancel As Boolean)
Answer = MsgBox("Do you want to continue ?", vbYesNo)
End Sub

Of

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Answer = MsgBox("Do you want to continue ?", vbYesNo)
End Sub

Of beide gebruiken.


Groetjes Danny. :thumb:
 
Laatst bewerkt:
Deze werkt niet.

Als ik nu op de save(opslaan) knop klik in de werkbalk komt de foutmeling:
Compileerfout:
Proceduredeclaratie komt niet overeen met de beschrijving van de gebeurtenis of de procedure met dezelfde naam.
 
Misschien met deze code knarfje.
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "Deze knop voor opslaan werkt niet"
End Sub
 
Misschien met deze code knarfje.
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "Deze knop voor opslaan werkt niet"
End Sub

Die werkt wel maar na op oke te klikken komt er toch weer een popup voor opslaan al...
 
Zowel in thisworkbook als in de sheet als in een module:o

Dan kan je de code ook nog plakken in de Persoonlijke werkmap, daar heb je ook ThisWorkbook, x aantal modules en x aantal sheet modules... :confused:

Neen, enkel in ThisWorkbook van het bestand dat niet meer gesaved mag worden.

En dat handboek over VBA mag je gerust ter hand nemen ;)

Wigi
 
En een "Cancel = True" moet ook nog in de code opgenomen worden.
 
En een "Cancel = True" moet ook nog in de code opgenomen worden.


Haha, ik had hem door Wim, maar nu is het niet meer op te slaan, en kun je een nieuwe maken?
 
Zet de Design weergave tijdelijk uit en aan, om even te saven.
 
Is gelukt, maar de VS wil schijnbaar geen MsgBox.
Maar voor mij was het een mooi experiment.
I.i.g. bedankt voor je hulp Wim.
 
Die werkt wel maar na op oke te klikken komt er toch weer een popup voor opslaan al...

Of de VS bedoeld de popup bij het afsluiten ervan.

Hier is de code i.i.g., mocht knarfje het willen gebruiken.

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "Deze knop voor opslaan werkt niet"
Cancel = True
End Sub
 
Ik vind het onverstandig aan iemand die zichzelf VBA-noob noemt te adviseren hoe basisfunkties van Excel uit te schakelen.
Het gaat in op een vraag die voortkomt uit onvoldoende kennis van Excel en VBA. Die vraag is niet gesteld in de vorm van een probleem of gewenste aanpak maar in de vorm van een oplossing waarbij VBA-code wordt gezocht. Het is belangrijker eerst na te gaan waarom de gebruiker dat wil en of wat hij/zij wil niet veel eenvoudiger op een minder ingrijpende manier kan worden opgelost.
Frix, Frixel, Knarfje: formuleer eerst duidelijk wat je wil en waarom en wat het nadeel zou zijn als de opslaanknop door gebruikers wordt gebruikt.
 
Ja, toppie dit was de bedoeling. incl msgbox:thumb:
 
Laatst bewerkt:
Nog één vraagje hierover...

Als ik in thisworkbook al een declaratie heb staan zoals deze code
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If Application.UserName <> "Fr@nk" Then   
    If Application.WorksheetFunction.CountA([J7]) <> _
        Application.WorksheetFunction.CountA([]) Then
         MsgBox "Je hebt de MAAND niet ingevuld!", vbExclamation
        Cancel = True
        End If
    End If
End Sub
hoe zet ik dan deze erbij?
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "Deze knop voor opslaan werkt niet"
Cancel = True
End Sub
Twee keer Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) gaat niet.
En de opslaan knop blokkeren code zoals hieronder verwerken gaat ook niet, er moet nog wat tussen denk ik:confused:
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If Application.UserName <> "Fr@nk" Then   
    If Application.WorksheetFunction.CountA([J7]) <> _
        Application.WorksheetFunction.CountA([]) Then
         MsgBox "Je hebt de MAAND niet ingevuld!", vbExclamation
        Cancel = True

[COLOR="Red"]MsgBox "Deze knop voor opslaan werkt niet"
Cancel = True[/COLOR]

        End If
    End If
End Sub
 
@snb heeft wel een punt, maar jij bent de eindgebruiker, en wat je er mee doet en wil........
Misschien zo:

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "Deze knop voor opslaan werkt niet"
If Application.UserName <> "Fr@nk" Then
    If Application.WorksheetFunction.CountA([J7]) <> _
        Application.WorksheetFunction.CountA([]) Then
         MsgBox "Je hebt de MAAND niet ingevuld!", vbExclamation
        Cancel = True
      End If
   End If
End Sub
 
Dankjewel Harry zo gaat het inderdaad wel.
Alleen behaal ik toch niet het resultaat wat ik wil behalen.:confused:

Om @snb ter wille te zijn zal ik vertellen wat ik wil(de) bereiken:
Ik wil namelijk graag dat het bestand word opgeslagen volgens onderstaande
Code:
Sub bestand_opslaan()
   ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & [B1] & [C1] & [J7] & ".xls"
   ActiveWorkbook.Close True
End Sub
Daarom heb ik een opdtachtknop gemaakt op het werkblad met bovenstaande macro eraan zodat ik zeker weet dat het bestand zo word opgeslagen.

Maar ik wist niet dat door de code om de opslaan knop te blokkeren dan ook de macro van de "opslaan knop" niet meer werkt:shocked:
Dus op deze manier bereik ik niet wat ik wil.(snik.)
 
Zorg ervoor dat dit bestand bij openen al meteen deze naam krijgt en controleer dat bij het sluiten van het bestand ook.
Wat de gebruiker tussendoor doet, doet er dan niet toe.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan