Comment masquer le ruban & co

apnart

XLDnaute Occasionnel
Bonjour,

J'ai cherché dans ce forum, mais j'ai pas trouvé...

J'ai une petite appli excel qui marche bien sous 2003, je dis appli, car en fait, j'ai masque tout ce qui correspond à excel dès qu'on ouvre cette appli (je fais l'inverse à la fermeture du fichier).

Mon soucis est que maintenant j'ai 2007 et que cette macro ne semble plus vouloir fonctionner... vous avez des idées pour éclairer ma lanterne ?

Merci d'avance,
Cordialement,
Bruno.

Le code d'origine :
-------------------------------------------------------------------------
Sub Workbook_Open() ' Macro d'ouverture excel

Application.ScreenUpdating = False ' Affichage des action de la macro OFF
Dim CmdB As CommandBar
Application.DisplayFormulaBar = False ' Masque la barre formule
For Each CmdB In Application.CommandBars ' Masque toutes les barres d'outil
CmdB.Enabled = False ' "
Next CmdB ' "
For Boucle = 1 To Sheets.Count ' Boucle pour lire tous les onglets
Sheets(Boucle).ScrollArea = TailleFenetre ' Fixe le scroll à la zone "TailleFenetre"
Sheets(Array(Boucle)).Select ' Sélectionne l'onglet en cours
With ActiveWindow ' Pour la fenêtre active =>
.DisplayHeadings = False ' SUPPRIME : Entêtes lignes / colonnes
.DisplayHorizontalScrollBar = False ' SUPPRIME : Ascenseur horizontal
.DisplayVerticalScrollBar = False ' SUPPRIME : Ascenseur vertical
.DisplayWorkbookTabs = False ' SUPPRIME : Onglets
End With
Next Boucle ' Fin boucle lecture onglets

Sheets("Aide").ScrollArea = "" ' Libère le scroll pour onglet "Aide"
Sheets("Aide").Select ' Sélectionne l'onglet "Aide"
Sheets(1).Select ' Activation de la 1ère feuille

Application.WindowState = xlNormal ' Affichage "normal" de excel
Application.Width = Range(TailleFenetre).Width ' Fixe la Largeur de la fenêtre
Application.Height = Range(TailleFenetre).Height ' Fixe la Hauteur de la fenêtre

Dim FIcone As String ' Icone dans la barre excel (en haut)
FIcone = Me.Path & "\" & FichierIco
If Dir$(FIcone) <> "" Then
hWnd = FindWindowA(vbNullString, Application.Caption)
HIcon = GetClassLongA(hWnd, -14)
SetClassLongA hWnd, -14, LoadImageA(0, FIcone, 1, 0, 0, &H10)
End If

End Sub
-------------------------------------------------------------------------
 

guigui971

XLDnaute Junior
Re : Comment masquer le ruban & co

Bonjour,

Pour ceux que çà interresse, je reviens sur le code destiné à masquer l'interface d'EXCEL, que j'ai simplifié au maximum :

Créer les 2 macros suivantes :
Sub masqueX()
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
ActiveWindow.DisplayHeadings = False
ActiveWindow.DisplayGridlines = False
Application.DisplayFullScreen = True
Application.DisplayStatusBar = Not Application.DisplayStatusBar
Application.WindowState = xlMaximized
ActiveWindow.WindowState = xlMaximized
Application.DisplayFormulaBar = False
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Sub montreX()
Application.ScreenUpdating = False
ActiveWindow.View = xlNormalView
ActiveWindow.DisplayHeadings = True
ActiveWindow.DisplayGridlines = True
Application.DisplayStatusBar = True
ActiveWindow.DisplayHorizontalScrollBar = True
ActiveWindow.DisplayVerticalScrollBar = True
Application.DisplayFullScreen = False
Application.DisplayFormulaBar = True
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
Application.ScreenUpdating = True


Mettre dans thisWorkBook :
Sub Workbook_Open()
Application.EnableEvents = False
Application.ErrorCheckingOptions.BackgroundChecking = False
Call masqueX
Application.EnableEvents = True
End Sub

Sub Workbook_Activate()
Application.EnableEvents = False
Call masqueX
Application.EnableEvents = True
End Sub

Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Application.EnableEvents = False
Call montreX
Application.EnableEvents = True
ActiveWorkbook.Save
End Sub​


Et enfin, mettre dans chaque feuille où l'on veut masquer l'interface EXCEL :
Sub Worksheet_Activate()
call masqueX
End Sub​


Seule petit détail qui me chiffone : quand on presse "ESC", la barre de formule ré-apparait...
Quelqu'un a t-il une idiée pour y pallier?

Merci
 

david84

XLDnaute Barbatruc
Re : Comment masquer le ruban & co

Bonjour,
non testé (donc à toi de le faire avec prudence si tu le souhaites) : tu peux tester dans le Workbook_Open
Code:
Application.OnKey "{ESCAPE}", ""
et si besoin rétablir l'état actif de cette touche par
Code:
Application.OnKey "{ESCAPE}"
dans le Workbook_BeforeClose.
De plus, si tu veux masquer tous ces éléments dans toutes les feuille (et non pas uniquement certaines), tu peux directement utiliser l'événement Workbook_SheetActivate dans ThisWorkbook plutôt que de passer par l'événement Worksheet_Activate de toutes les feuilles.
A+
 

guigui971

XLDnaute Junior
Re : Comment masquer le ruban & co

Bonjour,
non testé (donc à toi de le faire avec prudence si tu le souhaites) : tu peux tester dans le Workbook_Open
Code:
Application.OnKey "{ESCAPE}", ""
et si besoin rétablir l'état actif de cette touche par
Code:
Application.OnKey "{ESCAPE}"
dans le Workbook_BeforeClose.
A+
Génial, çà marche! Merci :cool:
Mon code est maintenant complet.



De plus, si tu veux masquer tous ces éléments dans toutes les feuille (et non pas uniquement certaines), tu peux directement utiliser l'événement Workbook_SheetActivate dans ThisWorkbook plutôt que de passer par l'événement Worksheet_Activate de toutes les feuilles.
A+
J'avais essayé çà. Mais le problème c'est que si au même moment, on veut ouvrir un autre classeur à côté (qui lui dispose avec tous les éléments EXCEL) et que l'on revient sur le premier, les éléments d'EXCEL ré-apparaissent dans le premier. (En éspérant que ma phrase est claire).
 
Dernière édition:

Si...

XLDnaute Barbatruc
Re : Comment masquer le ruban & co

salut

me serait-ce pas suffisant ainsi (plus de macros) ?
Ruban.jpg
 

Pièces jointes

  • Ruban.jpg
    Ruban.jpg
    21.7 KB · Affichages: 325
  • Ruban.jpg
    Ruban.jpg
    21.7 KB · Affichages: 268

guigui971

XLDnaute Junior
Re : Comment masquer le ruban & co

Salut,

Je ne connais pas çà. Pour diverses raisons, je développe sous EXCEL 2007
Je suppose que c'est sur un EXCEL récent. Lequel?

Si c'est ce que je crois, ce doit être bien utile et simple en effet. Mais surement réversible. Or dans mon cas, je ne veux pas que l'utilisateur puisse aller dans EXCEL. Mon classeur comporte toutes les fonctionnalités dont l'utilisateur a besoin sous forme de boutons.

Merci
 
Dernière édition:

Misange

XLDnaute Barbatruc
Re : Comment masquer le ruban & co

Bonjour @ tous

Il me semble que ceci est suffisant ?

ceci masque toutes les barres d'outils à l'ouverture ou à l'activation du classeur, les réaffiche à la désactivation ou à la fermeture du classeur.

Code:
Private Sub Workbook_Open()
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
    Application.DisplayFormulaBar = False
    Application.DisplayStatusBar = Not Application.DisplayStatusBar
    ActiveWindow.DisplayWorkbookTabs = False
End Sub


Private Sub Workbook_Activate()
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
    Application.DisplayFormulaBar = False
    Application.DisplayStatusBar = Not Application.DisplayStatusBar
    ActiveWindow.DisplayWorkbookTabs = False
End Sub


Private Sub Workbook_Deactivate()
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
    Application.DisplayFormulaBar = True
    Application.DisplayStatusBar = True
    ActiveWindow.DisplayWorkbookTabs = True

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
    Application.DisplayFormulaBar = True
    Application.DisplayStatusBar = True
    ActiveWindow.DisplayWorkbookTabs = True
End Sub
 

guigui971

XLDnaute Junior
Re : Comment masquer le ruban & co

Non !
Pour avoir déjà essayé ce que tu proposes, çà ne suffit pas.

Notament il te manque:
ActiveWindow.DisplayHeadings
ActiveWindow.DisplayGridlines

Le Application.ScreenUpdating, c'est pour que la manoeuvre soit plus rapide.

D'autre part, çà ne marchait pas tjs pareil à chaque fois, d'où le :
Application.EnableEvents

Enfin, il me fallait être certain qu'en passant sur un autre classeur au même moment, celui-ci dispose de tout EXCEL

Bref, toutes ces raisons font que j'en suis arrivé à un code un peu plus compliqué que ce que tu proposes...
 

Herdet

Nous a quitté
Repose en paix
Re : Comment masquer le ruban & co

Bonsoir,
En passant...un exemple de masquage plein écran que j'ai déjà utilisé dans une application ! :cool:
Sans la clef, l'utilisateur n'a plus accès aux feuilles de calcul ni au VBA ;) Alt F11 ne réponds plus !

Au boulot, les astucieux sinon ... à bientôt pour la solution :confused:

Robert
 

Pièces jointes

  • RD_plein_ecran.xlsm
    22.6 KB · Affichages: 151
  • RD_plein_ecran.xlsm
    22.6 KB · Affichages: 128
  • RD_plein_ecran.xlsm
    22.6 KB · Affichages: 153

Herdet

Nous a quitté
Repose en paix
Re : Comment masquer le ruban & co

Bonsoir à tous
Petite astuce....
Pas très malin, ça ! ...en désactivant le VBA, bien sûr mais ce n'est pas ca l'astuce.
Pour cet exemple, j'ai volontairement supprimé la page d'accueil qui oblige à activer les macros et pas mis de protection du VBA !

Naturellement, comme Excel n'est pas compilé en .exe et il est très facile de déprotéger un classeur et un VBA en 15 secondes chrono, mais il faut avoir un peu de pratique d'Excel.

Je ferais un exemple un peu plus blindé en général largement suffisant pour un utilisateur lambda.

Robert
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 912
Membres
101 837
dernier inscrit
Ugo