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

Verbergen van Toolbar(s)

Status
Niet open voor verdere reacties.

Humadgen

Gebruiker
Lid geworden
16 aug 2006
Berichten
251
Hallo,

Ik heb wel eens in een programma alle "toolbars" verborgen om ervoor te zorgen dat een gebruiker meer in zijn scherm ziet.

in VBA met de een rijtje code:
Code:
   Application.CommandBars("Standard").Visible = False
    Application.CommandBars("Formatting").Visible = False
    Application.CommandBars("PivotTable").Visible = False
    Application.CommandBars("Chart").Visible = False
    Application.CommandBars("Reviewing").Visible = False
    Application.CommandBars("Forms").Visible = False
    Application.CommandBars("Stop Recording").Visible = False
    Application.CommandBars("External Data").Visible = False
    Application.CommandBars("Full Screen").Visible = False
    Application.CommandBars("Circular Reference").Visible = False
    Application.CommandBars("Visual Basic").Visible = False
    Application.CommandBars("Web").Visible = False
    Application.CommandBars("Control Toolbox").Visible = False
    Application.CommandBars("Exit Design Mode").Visible = False
    Application.CommandBars("Drawing").Visible = False
    Application.CommandBars("WordArt").Visible = False
    Application.CommandBars("Picture").Visible = False
    Application.CommandBars("Shadow Settings").Visible = False
    Application.CommandBars("3-D Settings").Visible = False
    Application.DisplayFormulaBar = False
    Application.DisplayStatusBar = False

Wat ik echter niet voor elkaar krijg is het verbergen van de allerlaatste "toolbar" waarin staat vermeld:
File - Edit - View - Insert - Format - Tools - Data - Window - Help- Adobe PDF

Weet iemand daar de VBA codering voor. Ik wil voorkomen dat iemand zelf de protectie eraf kan halen en daarvoor deze bar verberger,
Thanks
Humadgen
 
Deze misschien?

Code:
Application.CommandBars(1).Enabled = False

Cobbe
 
Hoi,

De code van COBBE werkt. Mijn dank daarvoor.
Op het forum topic waar RaymondC naar verwijst zie ik allerlei waarschuwingen, en als ik naar de website gaat die daar weer in vermeld wordt zie ik hetzelfde.
Het enige wat ik niet goed begrijp: (en misschien denk ik er veel te gemakkelijk over)

Als ik een gebruiker een EXCEL programmatje laat openen en daarbij komt hij/zij in een opstart sheet waarin gevraagd wordt om middels een druk op een Macro te starten met het programma. (is de EXCEL sheet waarin werkelijk alles gebeurd). Die Macro leidt hem / haar naar een volgend sheet en tevens worden met de onderstaande code alle werkbalken uit beeld.

Code:
Sub toolbars_weg()
    Application.CommandBars(1).Enabled = False
    Application.CommandBars("Standard").Visible = False
    Application.CommandBars("Formatting").Visible = False
    Application.CommandBars("PivotTable").Visible = False
    Application.CommandBars("Chart").Visible = False
    Application.CommandBars("Reviewing").Visible = False
    Application.CommandBars("Forms").Visible = False
    Application.CommandBars("Stop Recording").Visible = False
    Application.CommandBars("External Data").Visible = False
    Application.CommandBars("Full Screen").Visible = False
    Application.CommandBars("Circular Reference").Visible = False
    Application.CommandBars("Visual Basic").Visible = False
    Application.CommandBars("Web").Visible = False
    Application.CommandBars("Task Pane").Visible = False
    Application.CommandBars("Control Toolbox").Visible = False
    Application.CommandBars("Exit Design Mode").Visible = False
    Application.CommandBars("Drawing").Visible = False
    Application.CommandBars("WordArt").Visible = False
    Application.CommandBars("Picture").Visible = False
    Application.CommandBars("Shadow Settings").Visible = False
    Application.CommandBars("3-D Settings").Visible = False
    Application.DisplayFormulaBar = False
    Application.DisplayStatusBar = False
End Sub

De gebruiker ziet dan een groter dan normaal scherm. (moet hem/haar toch aan het denken zetten dat ie niet zomaar met het kruisje mag afsluiten )

Als aan het eind van het programma dan weer terug gekeerd moet worden naar het opstartscherm en de gebruiker doet dan ook weer met een Macro waarin de onderstaande code staat:

Code:
Sub belangrijkste_toolbars_terug()
    Application.CommandBars(1).Enabled = True
    Application.CommandBars("Standard").Visible = True
    Application.CommandBars("Formatting").Visible = True
    Application.DisplayFormulaBar = True
    Application.DisplayStatusBar = True
End Sub

Dan moet er toch geen probleem kunnen ontstaan.

Het worst case scenario wat ik me kan bedenken, is dat de gebruiker toch met het kruisje afsluit, of dat er een computer BUG komt waardoor alles afgesloten moet worden terwijl dus de toolbars allemaal uit beeld zijn.
Maar de oplossing daarvoor lijkt me dat de gebruiker het EXCEL programma weer opstart en de twee eerder genoemde Macro's hanteerd om EXCEL weer netjes te laten functioneren.

Of zie ik nu iets heel erg over het hoofd.
Humadgen
 
Humadgen,

Misschien is onderstaande code wat voor je?

Code:
Private Sub UserForm_QueryClose _
  (Cancel As Integer, CloseMode As Integer)
    'Verhindert het gebruik van de Sluiten-knop
    If CloseMode = vbFormControlMenu Then
        MsgBox "Formulier enkel sluiten met de Annuleer-knop.", vbOKOnly, "Jouw FormNaam"
        Cancel = True
    End If
End Sub
 
Hoi Hoornvan,

Ik heb je code geprobeerd, maar doet niets bij mij.
1. Wat zou deze moeten doen? want ik lees het niet in de code.
2. Moet die achter de worksheet geplaatst worden?

Alvast bedankt voor je meedenken
Grtnx
Humadgen
 
Humadgen,

1. Wat zou deze moeten doen? want ik lees het niet in de code.
2. Moet die achter de worksheet geplaatst worden?
1. Hij verhinderd dat je het kruisje kunt gebruiken.
2. De code staat achter het formulier.

Of zoek je wat anders?
 
Wim, deze code werkt enkel op userforms niet op het excelkruisje

Mvg

Rudi
 
Warme bakkertje,

Dan heb ik het verkeerd begrepen.
 
Warme Bakkertje. Ik heb het topic gelezen en geprobeerd. EXCEL kan nu inderdaad niet meer worden afgesloten. Maar ik had verwacht dat het dan via de File - Close wel zou lukken, zo las ik met mijn (nog steeds beperkte VBA kennis) de verschillende codes die ik in dat forum terugvond.
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean) 
     
    If CloseMode = 0 Then Cancel = True 
     MsgBox "Please go to File > Close to close this file" 
End Sub
of
Code:
Option Explicit
Public BooleanForClosing As Boolean
Private Sub Workbook_BeforeClose(Cancel As Boolean)
     
    If BooleanForClosing = False Then
         MsgBox "Please using exit button"
        Cancel = True
    End If
     
End Sub
EXCEL kan nu dus inderdaad niet worden afgesloten met het kruisje, ook niet met File - Close (behalve als ik de code weer met het handje verwijder.)
Kan ik de bovengenoemde code op een of andere manier inactiveren om te zorgen dat de gebruiker uiteindelijk wel de toolbars terugkrijgt en weer normaal kan afsluiten.

VRAAG derhalve hoe doe ik dat dan?
Ik had gehoopt dat dit voldoende zou zijn, maar dat werkt dus niet:
Code:
Sub Afsluiten()

    ActiveWorkbook.Save
    Application.DisplayAlerts = False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True

End Sub
Thanks
Humadgen.
 
Laatst bewerkt:
Plaats volgende lijn bovenaan je standaardmodule
Code:
Public BooleanForClosing As Boolean

Pas volgende macro aan als volgt
Code:
Sub belangrijkste_toolbars_terug()
    Application.CommandBars(1).Enabled = True
    Application.CommandBars("Standard").Visible = True
    Application.CommandBars("Formatting").Visible = True
    Application.DisplayFormulaBar = True
    Application.DisplayStatusBar = True
    [COLOR="Red"]BooleanForClosing = True
    ActiveWorkbook.Close SaveChanges = True[/COLOR]
End Sub

En tot slot
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean) 
     
    If BooleanForClosing = False Then 
         MsgBox "Gebruik de knop om af te sluiten" 
        Cancel = True
        Exit Sub 
    End If 
End Sub

Nu zijn de gebruikers verplicht om de knop te gebruiken en alle toolbars terug te plaatsen, anders kan er niet afgesloten worden.

Mvg

Rudi
 
Laatst bewerkt:
Ook ik probeer het kruisje te deactiveren en de gebruiker af te laten sluiten via een macro welke gelinkt is aan een button. Het deactiveren van het kruisje werkt prima, echter kan ik het werkboek dan op geen enkele manier meer afsluiten. Wie kan mij (stapsgewijs) vertellen hoe ik dit realiseren kan. Bedankt !!
 
Chiel, verwerk in de macro die gelinkt is aan je button onderstaande regel. Daarmee geef je toestemming om het bestand te sluiten.
Code:
BooleanForClosing = True

En uiteraard in ThisWorkbook
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean) 
     
    If BooleanForClosing = False Then 
         MsgBox "Gebruik de knop om af te sluiten" 
        Cancel = True
        Exit Sub 
    End If 
End Sub

Mvg

Rudi
 
Laatst bewerkt:
Warme Bakkertje bedankt. Hoe zou de macro er uit moeten gaan zien om de worksheet te sluiten ? Ik krijg hem met geen mogelijkheid afgesloten, vandaar. Nogmaals bedankt !
 
Chiel, post anders eens een voorbeeldbestand (uiteraard zonder gevoelige info ) of de macro die gelinkt is aan de button anders wordt het maar raden.

Mvg

Rudi
 
Ben er achter waarom het niet werkte; had de macro afsluiten in Blad1 ipv This Workbook gezet. Werkt nu prima. Nogmaals bedankt !! :thumb:
 
Warme Bakkertje.
Wederom bedankt voor je hulp. :thumb:Het werkt perfect.
Grtnx
Humadgen
 
Hoi,

Daar ben ik toch nog een keer.
Ik had de vraag al gesloten, maar liep bij een praktijktest tegen een probleem op.

Het bestand waar ik nu het de Toolbars heb verborgen en het kruisje om af te sluiten ook niet meer werkt, wordt nu afgesloten met een Macro die achtereenvolgens:
De toolbars terugbrengt,
Het Kruisje weer activeert,
Het bestand "Saved" en
"Closed".

Dat werkt helemaal goed.......maar.

Dit bestand moet beveiligd worden door een "password to modify" aangezien, slechts een beperkt aantal personen aanpassingen mogen maken.
Anderen mogen / kunnen het wel openen als een "Read Only" bestandje.

Het probleem waar ik nu tegenaan loop is dat als het bestand is geopend als "Read Only" de Macro die alles afsluit, vastloopt op het Save gedeelte. Ik kan natuurlijk de Macro in 2 hakken.
1 Macro om te "Saven" en
1 Macro om af te "Closen"
Maar ik hoop dat iemand wellicht een code weet die het "Save" in stand houdt voor diegene die het programma heeft geopend met het "Password to Modify", maar herkent dat het een "Read Only" versie is, of die het Save gedeelte omzeilt als het een "Read only" versie betreft.

Bedankt voor het meedenken.
Humadgen
 
Humadgen, probeer onderstaande eens.
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 If ThisWorkbook.ReadOnly = True Then
    Cancel = True
End if
End Sub

Mvg

Rudi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan