XL 2019 Suppression ou cache de la barre des entêtes Excel dans une macro

Didier Quilghini

XLDnaute Nouveau
Bonjour le Forum,
J'ai crée un petit programme personnalisé de Gestion de Micro-Entreprise pour mon amie.
Ce dernier est maintenant terminé mais il reste un petit souci.
Mon amie - comme tout utilisateur - curieuse- (curieux)- est tentée d'aller voir ce qui se passe dans le programme, au risque de foutre la pagaille malgré toutes les protections que j'ai placées.
Alors la question que je vous pose est la suivante : Comment cacher cette barre des titres Excel où apparaissent :
1615117385969.png

J'ai cherché de partout mais en vain ...... avant de venir vous solliciter
Je suis sur Excell 2019, 64bits (visiblement cette information est importante pour ce problème (il y a des solutions pour 32bits mais pas 64bits).
Merci pour votre attention et bon dimanche
Cdt
Didier
 

Staple1600

XLDnaute Barbatruc
Re

=>Yeahou
[/aparté]
Je voulais simplement dire que puisque cela appartient à l'entreprise quand le salarié part et que l'outil est protégé cela peut poser problème.
Donc pour ce qui me concerne, je ne protège pas.
[/aparté]
Sinon tu as vu que ce je dis dans le message#14?
 

Staple1600

XLDnaute Barbatruc
Re

=>Yeahou
Sauf que le fichier finit par s'ouvrir et que je n'ai pas de menus
(Tu disais que cela ne fonctionnait que sur les *.xslm et xlsb pas sur les *.xlsx)
NB: Dans cet exemple, je mettais juste dans la peau d'un utilisateur "novice" d'Excel qui aurait fait un Enregistrer sous -> *.xlsx
 

Didier Quilghini

XLDnaute Nouveau
Bonsoir le fil !

Staple1600, mapomme, vous êtes durs avec Didier. :rolleyes:
Didier, tu peux utiliser la customisation Xml pour désactiver les menus Excel dans ton seul classeur.
Tu peux utiliser pour cela CustomUI très bien fait
ce code dans un module de ton classeur
VB:
Option Private Module
Option Explicit
Public Mon_Ruban As IRibbonUI
Sub CustomUI_onLoad(ribbon As IRibbonUI)
    Set Mon_Ruban = ribbon
End Sub
ce code Xml ajouté avec CustomUI désactivera tous les menus, à part le menu fichier, de ton seul classeur sans impact sur les autres
Code:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="CustomUI_onLoad">
<ribbon startFromScratch="true">
</ribbon>
</customUI>
je t'ai mis le fichier en exemple
la customisation des menus peut aller très loin et être entièrement pilotée par macro.
Une recherche CustomUI sur Google te remontera plein de tutos.
(Et cela fonctionne très bien de Excel 2007 à Excel 2019 en 32 ou en 64 bits)

Bien cordialement
Bonsoir Yeahou
Tout d'abord merci pour ton attention à ma demande.
Cela dit, je suis bien arrivé à tout désactiver, ascendeurs, ruban, menu etc. sauf .... sauf .... la barre tout en haut, la barre des titres où apparait nom de fichier (que j'ai remplacé par autre chose) et les fameuses icones réduction dimension et la croix.
Ce sont ces trois chose que je souhaite faire disparaître.
Merci d'avance su tu as une solution cat je sèche complétement la dessus
Cdt
Didier
 

Didier Quilghini

XLDnaute Nouveau
Bonjour @Yeahou :),

Je ne vois pas en quoi ma réponse est dure (ni celle de @Staple1600 d’ailleurs).
Je suis respectueux, poli et je n'exprime que mon point de vue et ne dit rien ni ne fait rien pour convaincre quiconque. J'espère que Didier aura perçu cela.
Nous sommes sur un forum et le forum permet de partager et s'exprimer.
mapomme ... aucun problème, chacun s'exprime et c'est très bien de mon point de vue.
Cdt
Didier
 

cp4

XLDnaute Barbatruc
par contre si tu veux t'y essayer (et je te le conseille), ce n'est jamais assez précisé qu'il faut faire très attention à la syntaxe. Une minuscule qui devrait être en majuscule et cela ne fonctionne pas.
Merci beaucoup pour ton partage d'expérience. Je vais effectivement faire au moins un essai.
Si j'ai bien compris c'est utilitaire de Microsoft. Mais bizarrement, je n'ai pas trouvé de lien de téléchargement sur son site. J'en ai trouvé un sur Developpez.com.

Bonne soirée.
 

Staple1600

XLDnaute Barbatruc
Re

En général, je fais confiance à mes ami(e)(s) ;)
Et si je leur file un classeur Excel pour leur propre usage, bah ils l'utilisent simplement pour ce pourquoi il a été fait.
Et si une amie était curieuse, elle en aura vite marre de me payer l'apéro pour que je vienne réparer le truc
(surtout si je m'éternise et que je reste à souper pour en loucedé lui faire comprendre d'arrêter de trifouiller la bête (*))
;)

(*) on aura compris que je parle du classeur
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonsoir le fil

Désolé de répondre tardivement mais il a fallu que je m'occupe de la vie courante.
=>Yeahou
Sauf que le fichier finit par s'ouvrir et que je n'ai pas de menus
(Tu disais que cela ne fonctionnait que sur les *.xslm et xlsb pas sur les *.xlsx)
NB: Dans cet exemple, je mettais juste dans la peau d'un utilisateur "novice" d'Excel qui aurait fait un Enregistrer sous -> *.xlsx
Et je persiste, dans tous les cas de figure, les menus personnalisés XML ne fonctionneront pas sur un Xlsx , c'est d'ailleurs exactement ce qu'il se passe. Si le menu personnalisé avait été plus complexe, l'affichage aurait été quand même uniquement le menu fichier et toute l'interface zappée. Un utilisateur qui transforme la nature d'un fichier ne peut pas s'attendre à ce qu'il fonctionne bien quand même. D'autant plus que je ne vois aucun intérêt à faire un menu personnalisé sur un fichier sans macro.

Bien cordialement
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Je vais effectivement faire au moins un essai.
pour Cp4 (au fait t'as pas changé de pseudo ? je ne me souvenais pas de celui la pour toi), n'hésites pas à me solliciter si tu as des questions, les premiers essais peuvent être compliqués.
Si j'ai bien compris c'est utilitaire de Microsoft. Mais bizarrement, je n'ai pas trouvé de lien de téléchargement sur son site. J'en ai trouvé un sur Developpez.com.
il n'est plus maintenu par Crosoft mais reste parfaitement fonctionnel et évite d'écrire le code Xml dans un éditeur de texte pour l'insérer manuellement dans le fichier.
 

Staple1600

XLDnaute Barbatruc
Re

=>Yeahou
Ce que je voulais dire c'est qu'on peut se retrouver avec un fichier *.xlsx avec un menu désactivé.
Je parlais d'éventuels biais qui pourrait survenir avec un utilisateur novice.

NB: Je précise également que je ne critique ni ta proposition, ni les possibilités offertes par CustomUI.
(Je préfère préciser pour éviter le quiproquo ;))
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonsoir Yeahou
Tout d'abord merci pour ton attention à ma demande.
Cela dit, je suis bien arrivé à tout désactiver, ascendeurs, ruban, menu etc. sauf .... sauf .... la barre tout en haut, la barre des titres où apparait nom de fichier (que j'ai remplacé par autre chose) et les fameuses icones réduction dimension et la croix.
Ce sont ces trois chose que je souhaite faire disparaître.
Merci d'avance su tu as une solution cat je sèche complétement la dessus
Cdt
Didier
tu as aussi dit dans ton premier post
Je suis sur Excell 2019, 64bits (visiblement cette information est importante pour ce problème (il y a des solutions pour 32bits mais pas 64bits).
tu as essayé cela ?
Et pour utiliser des librairies 32 bits sous Excel 64 bits, il suffit généralement d'inclure PtrSafe à l'instruction ce qui ne gênera pas pour l'utiliser sous 32 bits si ton fichier doit être multi plateforme, testé de Excel 2010 32 Bits à Excel 2019 64 Bits.
Voir ce lien
Doc Crosoft PtrSafe
ça fonctionne bien, tu sais, j'ai désactivé la croix sans problème sous Excel 64 bits avec une librairie 32 bits
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
voici un exemple fonctionnel sous Excel 64 pour désactiver la croix de fermeture
VB:
Option Explicit
Private Declare PtrSafe Function GetSystemMenu Lib "User32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare PtrSafe Function DeleteMenu Lib "User32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare PtrSafe Function FindWindowA Lib "User32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Sub Desactive_Croix()
    Dim Retour_Val As Long
    On Error Resume Next
    Retour_Val = FindWindowA(vbNullString, Application.Caption)
    If Retour_Val <> 0 Then
      'désactive la croix de fermeture d'Excel et la commande Fermeture du menu système
      DeleteMenu GetSystemMenu(Retour_Val, False), 6, &H400
    End If
End Sub
Public Sub Active_Croix()
    Dim Retour_Val As Long
    On Error Resume Next
    'rétablit la croix de fermeture d'Excel et la commande Fermeture du menu système
    Retour_Val = FindWindowA(vbNullString, Application.Caption)
    GetSystemMenu Retour_Val, True
End Sub
 

cp4

XLDnaute Barbatruc
pour Cp4 (au fait t'as pas changé de pseudo ? je ne me souvenais pas de celui la pour toi), n'hésites pas à me solliciter si tu as des questions, les premiers essais peuvent être compliqués.

il n'est plus maintenu par Crosoft mais reste parfaitement fonctionnel et évite d'écrire le code Xml dans un éditeur de texte pour l'insérer manuellement dans le fichier.
Bonjour,

@Yeahou : je porte toujours le même nom et prénom depuis que je suis né:). il en est de même pour mon pseudo depuis mon inscription. J'ai juste ajouté un avatar customisé à mon goût.

Merci pour ton conseil. En effet, je ne l'ai pas trouvé sur Crosoft😃. Je l'ai trouvé sur developpez.com.

Encore merci.

Bonne journée.
 

Statistiques des forums

Discussions
314 654
Messages
2 111 598
Membres
111 215
dernier inscrit
fateh