Réduire le ruban à la fermeture d'Excel 2007 (NON RESOLU)

  • Initiateur de la discussion Initiateur de la discussion JBARBE
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

JBARBE

XLDnaute Barbatruc
Bonjour à tous,

J'ai un problème à la fermeture de mon fichier sous Excel 2007 que je n'ai pas à l'ouverture !

J'utilise la macro suivante qui ne fonctionne qu'une fois sur deux !!!!


Code:
'Simule Ctrl+F1 (à lancer depuis la feuille de calcul)
    Const VK_CONTROL = &H11
    Const VK_F1 = &H70
    Const KEYEVENTF_KEYUP = &H2
 
    keybd_event VK_CONTROL, 0, 0, 0
    keybd_event VK_F1, 0, 0, 0
    keybd_event VK_F1, 0, KEYEVENTF_KEYUP, 0
    keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0

Si vous avez une solution je suis preneur !!

Merci à l'avance !
 
Dernière édition:
Re : Réduire le ruban à la fermeture d'Excel 2007

Bonjour Jbarbe

Je ne comprend pas trop ton problème.

Tu veux fermer Excel et ne plus avoir le ruban quand tu l'ouvres à nouveau?

Sinon tu as le raccourci: Ctrl+F1 pour le faire comme tu l'as dit. Avec un fichier .xlam, cela pourrait peut-être le faire.
 
Re : Réduire le ruban à la fermeture d'Excel 2007

Pour l'ouverture, d'Excel cette macro avec Worksheet_Open efface le ruban convenablement !

Pour la fermeture, cette macro devant réactiver le ruban ne le fait malheureusement qu'une fois sur deux!

Je ne veux pas le faire manuellement ( CTRL+F1) puisqu'une macro peut le faire !

De là mon problème !!!!
 
Re : Réduire le ruban à la fermeture d'Excel 2007

Voici la macro entière !

Code:
Option Explicit

Private Declare Sub keybd_event Lib "user32" ( _
    ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
    ByVal dwExtraInfo As Long)
 
Sub Masquer_Afficher_Ruban()
    'Simule Ctrl+F1 (à lancer depuis la feuille de calcul)
    Const VK_CONTROL = &H11
    Const VK_F1 = &H70
    Const KEYEVENTF_KEYUP = &H2
 
    keybd_event VK_CONTROL, 0, 0, 0
    keybd_event VK_F1, 0, 0, 0
    keybd_event VK_F1, 0, KEYEVENTF_KEYUP, 0
    keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0
    
End Sub
 
Re : Réduire le ruban à la fermeture d'Excel 2007 (RESOLU)

J'ai résolu le problème en quittant Excel et en laissant ainsi le ruban présenté !

Mais lorsque je veux quitter le programme (Application.Quit) le ruban ne s'active pas !

Voici la macro !

Code:
Option Explicit

Private Declare Sub keybd_event Lib "user32" ( _
    ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
    ByVal dwExtraInfo As Long)
    
Sub Quitter_Excel()
Application.ScreenUpdating = False
'Simule Ctrl+F1 (à lancer depuis la feuille de calcul)
    Const VK_CONTROL = &H11
    Const VK_F1 = &H70
    Const KEYEVENTF_KEYUP = &H2
    
    keybd_event VK_CONTROL, 0, 0, 0
    keybd_event VK_F1, 0, 0, 0
    keybd_event VK_F1, 0, KEYEVENTF_KEYUP, 0
    keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0
ActiveWindow.DisplayHeadings = True
Application.DisplayFormulaBar = True
Sheets("Tableau_de_bord").Select
    ActiveWorkbook.Save
    ThisWorkbook.Close
Application.ScreenUpdating = True
End Sub

    
Sub Quitter()
Application.ScreenUpdating = False
'Simule Ctrl+F1 (à lancer depuis la feuille de calcul)
    Const VK_CONTROL = &H11
    Const VK_F1 = &H70
    Const KEYEVENTF_KEYUP = &H2
    
    keybd_event VK_CONTROL, 0, 0, 0
    keybd_event VK_F1, 0, 0, 0
    keybd_event VK_F1, 0, KEYEVENTF_KEYUP, 0
    keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0
Application.DisplayFormulaBar = True
ActiveWindow.DisplayHeadings = True
Sheets("Tableau_de_bord").Select
    ActiveWorkbook.Save
    Application.Quit
Application.ScreenUpdating = True
End Sub

David peux-tu m'expliquer ce que tu me suggères avec un exemple !!! Merci !
 
Re : Réduire le ruban à la fermeture d'Excel 2007 (NON RESOLU)

Re
David peux-tu m'expliquer ce que tu me suggères avec un exemple !!! Merci !
Si tu ne veux pas avoir le ruban à l'ouverture d'Excel :
Code:
Private Sub Workbook_Open()
Application.DisplayFullScreen = True
End Sub

Ne pas oublier de l'afficher avant la fermeture du classeur :
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayFullScreen = False
End Sub

Si tu veux le résultat inverse, et bien...tu inverses (mais je ne comprends pas trop l'intérêt).

Ceci-dit, ma question reste d'actualité : quel est l'intérêt de passer par des API dans ce cas ?
Autrement dit, les API utilisées dans tes macros ont-elles un comportement différent que ce que je te propose ou le résultat est-il le même ?

Perso, comme je suis en version 64 bits d'Office 2010, les API telles que présentées dans ton code ne peuvent fonctionner et comme j'ai la flemme de les modifier pour les rendre compatibles juste pour tester, je préfère poser la question.
A+
 
Re : Réduire le ruban à la fermeture d'Excel 2007 (NON RESOLU)

David ta macro ne simule pas la commande CTRL + F1 et pose problème pour la macro (Sub Quitter_Excel())!

par contre pour (Sub Quitter()) c'est OK !

Mais je souhaite s'il le faut pouvoir utiliser la commande CTRL+F1 manuellement lors de ma saisie !

Merci de ton aide !
 
Re : Réduire le ruban à la fermeture d'Excel 2007 (NON RESOLU)

Re
David ta macro ne simule pas la commande CTRL + F1 et pose problème pour la macro (Sub Quitter_Excel())!
Ok.
Je ne suis pas fan des sendkeys mais là pourquoi pas

Application.SendKeys "^{F1}"
Pour info, sur mon ordinateur, Application.SendKeys "^{F1}" ouvre l'aide d'Excel et bloque mon pavé numérique, mais n'a aucune action sur le Ruban (Excel 2010 version 64 bits).
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

E
Réponses
2
Affichages
884
E
E
Réponses
0
Affichages
975
E
Retour