Cacher ruban, barre de formule, etc

Bonjour,

Je souhaite cacher le ruban, la barre de formule, les onglets pour faire de mon fichier Excel une application. Cependant avec mon code actuel cela me cache aussi les rubans et autres de tous les fichiers Excel ce que je ne veux pas. Je souhaite savoir si vous avez une solution pour cacher le ruban, la barre de formule et les onglets uniquement du classeur dans lequel est le code. Ci-joint mon code actuel. Cordialement.

Private Sub Workbook_Open()
    Dim enabled As Boolean
    enabled = False

    'activation/desactivation visibilité des onglets
    ActiveWindow.DisplayWorkbookTabs = enabled

    'activation/desavitvation menu contextuel onglet
    Application.CommandBars("Ply").enabled = enabled

    'activation/desactivation de la barre de formule
    Application.DisplayFormulaBar = enabled

    'activation/desactivation barre d'état
    Application.DisplayStatusBar = enabled

    'activation/desactivation des entetes de lignes et colonnes
    ActiveWindow.DisplayHeadings = enabled

    'activation/desactivation du ruban
    If enabled Then
        Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",true)"
    Else
        Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",false)"
    End If
End Sub

Bonjour,

Je dirais :

Windows(ThisWorkbook.Name).DisplayWorkbookTabs = False

Où on récupère le nom du classeur où est lancé la macro qui est aussi, dans la logique, égal au nom de la fenêtre.

Cdlt,

Cela me fait toujours le même problème en changeant avec le nom du classeur.

Bonjour,

Que veut dire :

Cela me fait toujours le même problème en changeant avec le nom du classeur.

Sur mon PC lorsque j'ouvre le fichier joint, alors la navigation entre feuille n'est plus accessible tandis que sur les autres classeurs ouverts antérieurement ou ultérieurement, les feuilles sont accessibles par leur onglet.

image

Cdlt,

103classeur1.xlsm (12.33 Ko)

Salut le fil...

Tu fais l' opération inverse dans ThisWorkBook.BeforeClose.

Bonjour,

Voici un classeur "sur-mesure."

304vide.xlsm (15.49 Ko)

Vous pouvez le modifier, le renommer à votre convenance.

Nota : Dans cette situation le ruban n'est pas affichable directement par VBA.

Cependant il reste possible d'en afficher tout ou partie des éléments par programmation. En savoir plus sur ce sujet.

A+

Salut,

Plus sérieusement,

Private Sub Workbook_Open()
Dim enabled As Boolean
    enabled = False

    '// Utilises plutôt des index

    'activation/desactivation visibilité des onglets
    Excel.Window(1).DisplayWorkbookTabs = enabled
    'activation/desavitvation menu contextuel onglet
    Application.CommandBars("Ply").enabled = enabled
    'activation/desactivation de la barre de formule
    Application.Workbooks(1).DisplayFormulaBar = enabled
    'activation/desactivation barre d'état
    Application.Workbooks(1).DisplayStatusBar = enabled
    'activation/desactivation des entetes de lignes et colonnes
    Excel.Windows(1).DisplayHeadings = enabled
    'activation/desactivation du ruban
    Application.DisplayFullScreen = enabled
End Sub

Salut,

Plus sérieusement,

kezaco

Bonjour,

En règle générale, on utilise plutôt les évènements :

Private Sub Workbook_Activate()
blabla... pour masquer
End Sub

Et :

Private Sub Workbook_Deactivate()
bleble... pour démasquer
End Sub

Galopin,

je faisait référence à MON PREMIER COMMENTAIRE je ne me permettrais pas de critiquer le code de quelqu'un d'autre, surtout avec mon niveau

Actuellement j'ai essayé avec la fonction displayfullscreen = true ce qui fonctionne pour mon premier classeur cependant dans ce premier classeur j'ouvre un autre classeur dans lequel j'ai mis le même code et cela ne fonctionne pas même quand je met dans _activate à la place de _open. En gros le code fonctionne pour mon premier classeur mais quand j'ouvre le second et bien j'ai le ruban et tout le reste qui est affiché dans mon second classeur.

'Code du premier classeur

Private Sub Workbook_Open()
    CancelSortiePrincip = False

    enabled = False
    'activation/desactivation de la barre de formule
    Application.DisplayFormulaBar = enabled
    'activation/desactivation des entetes de lignes et colonnes
    ActiveWindow.DisplayHeadings = enabled
    Application.DisplayFullScreen = True
End Sub

Private Sub AfficherRetouches_Click()
    'Fonction pour afficher directement les retouches depuis l'acceuil en fermant l'userform accueil 
    Workbooks.Open Filename:="N:\Logiciel_Retouche\BDD_Finale.xlsm"

    'Cacher le formulaire Accueil
    Accueil.Hide
End Sub
'Code du classeur que j'ouvre depuis le premier 

Private Sub Workbook_Open()
    enabled = False
    'activation/desactivation de la barre de formule
    Application.DisplayFormulaBar = enabled
    'activation/desactivation des entetes de lignes et colonnes
    ActiveWindow.DisplayHeadings = enabled
    Application.DisplayFullScreen = True

    'On initialise la variable Cancel du calsseur principale a  true pour pouvoir le fermer
    Application.Run ("Logiciel_Retouche.xlsm!SetCancelSortiePrincip"), True

    'On initialise la variable CancelSortie a true pour que l'utilisateur ne puisse pas fermer avec la croix
    Application.Run ("Logiciel_Retouche.xlsm!SetCancelSortieBDD"), True
End Sub

Salut pour moi ça marche

'Classeur 1 code

Private Sub Workbook_Open()
Dim enabled As Boolean: enabled = False
With ThisWorkbook
With .Application
.DisplayFormulaBar = enabled
.DisplayFullScreen = Not (enabled)
End With
Excel.Windows(1).DisplayHeadings = enabled
End With
End Sub

Sub Bouton1_Cliquer()
Workbooks.Open Filename:="C:\Users\Dad\Desktop\Classeur2.xlsm"
End Sub

Classeur 2 code :

Dim enabled As Boolean: enabled = False
    With ThisWorkbook
        With .Application
            .DisplayFormulaBar = enabled
            .DisplayFullScreen = Not (enabled)
        End With
        Excel.Windows(2).DisplayHeadings = enabled
    End With

Après redimensionnement des fenêtres

image

Bonjour,

Une petite contribution !?

Cdlt.

Private Sub Workbook_Open()
    Settings False
End Sub

Private Sub Workbook_Activate()
    Settings False
End Sub

Private Sub Workbook_Deactivate()
    Settings True
End Sub

Private Sub Settings(bln As Boolean)
    With ActiveWindow
        .DisplayWorkbookTabs = bln
        .DisplayHeadings = bln
    End With
    With Application
        .CommandBars("Ply").enabled = bln
        .DisplayFormulaBar = bln
        .DisplayStatusBar = bln
        If bln = False Then .ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",false)"
    End With
End Sub

Merci Jean-Paul et Jean-Eric le code fonctionne! Cependant j'ai un nouveau problème quand je veux fermer le deuxième classeur via un bouton en utilisant la fonction "ThisWorkbook.Close True" cela me met l'erreur 1004 la méthode close de l'objet workbook a échoué.

Salut,

Si ta femme te dis amour fermes la porte, tu vas lui répondre d'accord mais qu'elle porte ?

Donc quand plusieurs classeurs sont ouvert prenons l'habitude de donner l'index Workbooks(1).Close True.

Pour ma par j’utilise que très rarement les ActiveSheet, ActiveWorkbook, ThisWorkbook, on gagne juste du temps en programmation, mais pour ce qui est de la lisibilité du code...

Et encore mieux par son Nom WorkBooks("Classeur2").Close True

Et bien même en spécifiant le nom du classeur à fermer cela ne fonctionne pas et me donne toujours la même erreur.

Tu dois faire un appel dans le processus de fermeture à quelque chose qui te bloques, as-tu mis du code dans l'un des évènement BeforeClose, BeforeSave ou autres

Oui j'ai du code mais cela fonctionne parfaitement si j'enlève les fonctions pour cacher le ruban.

Private Sub Workbook_BeforeClose (Cancel As Boolean)

    Application.Run("Logiciel_Retouche.xlsm!SetCancelSortiePrincip"), False

    Cancel = Application.Run("Logiciel_Retouche.xlsm!GetCancelSortieBDD")

    If Cancel = True Then MsgBox ("Pour fermer cliquez sur le bouton retour accueil.")

    ThisWorkbook.Save
End Sub
Rechercher des sujets similaires à "cacher ruban barre formule etc"