Limitation de l'action de macros à une seule feuille
Le
Nikelik

Bonjour,
J'ai ajouté des macros à une base de données Excel pour aéliorer la
présentation, notamment pour passer en mode plein écran et enlever les barres
d'outils (grâce à excelabo.net entre autres):
Private Sub Workbook_Open()
Dim cmdB As CommandBar
For Each cmdB In Application.CommandBars
cmdB.Enabled = False
Next cmdB
' si tu veux masquer en plus la barre d'état
' la barre de formule
' les onglets
With Application
.DisplayFullScreen = True
.DisplayStatusBar = False
.DisplayFormulaBar = False
End With
With ActiveWindow
.DisplayWorkbookTabs = False
.DisplayHeadings = False
End With
'
End Sub
Le résultat est parfait, mais il s'applique aussi à tous les autres
documents que j'ouvre par la suite ou en même temps. Comme ce document à
vocation à être partagé et donc utilisé par des "très débutants" en Excel, je
vous serais très reconnaissant de bien vouloir m'expliquer comment rendre
cette macro active sur ce seul fichier.
Merci pour votre aide et bravo pour votre disponibilité
J'ai ajouté des macros à une base de données Excel pour aéliorer la
présentation, notamment pour passer en mode plein écran et enlever les barres
d'outils (grâce à excelabo.net entre autres):
Private Sub Workbook_Open()
Dim cmdB As CommandBar
For Each cmdB In Application.CommandBars
cmdB.Enabled = False
Next cmdB
' si tu veux masquer en plus la barre d'état
' la barre de formule
' les onglets
With Application
.DisplayFullScreen = True
.DisplayStatusBar = False
.DisplayFormulaBar = False
End With
With ActiveWindow
.DisplayWorkbookTabs = False
.DisplayHeadings = False
End With
'
End Sub
Le résultat est parfait, mais il s'applique aussi à tous les autres
documents que j'ouvre par la suite ou en même temps. Comme ce document à
vocation à être partagé et donc utilisé par des "très débutants" en Excel, je
vous serais très reconnaissant de bien vouloir m'expliquer comment rendre
cette macro active sur ce seul fichier.
Merci pour votre aide et bravo pour votre disponibilité
il est nécessaire d'utiliser l'evenement Workbook_activate et
workbook_Deactivate pour mettre ta barre d'outils et remettre les barres
d'outils de l'utilsateur comme elles étaient . Encore faut-il que tu ais
mémorisé quelles étaient les barres d'outils qui étaient actives avant que
ton classeur ne s'ouvre réellement.
Pour la gestion des barres d'outils, voir le site de Frédéric Sigonneau, tu
trouveras ton bonheur.
A+
Dans la feuille de code de ThisWorkbook...
Private Sub Workbook_Activate()
Dim cmdB As CommandBar
For Each cmdB In Application.CommandBars
cmdB.Enabled = False
Next cmdB
With Application
.DisplayFullScreen = True
.DisplayStatusBar = False
.DisplayFormulaBar = False
End With
With ActiveWindow
.DisplayWorkbookTabs = False
.DisplayHeadings = False
End With
End Sub
Private Sub Workbook_Deactivate()
Dim cmdB As CommandBar
For Each cmdB In Application.CommandBars
cmdB.Enabled = True
Next cmdB
With Application
.DisplayFullScreen = False
.DisplayStatusBar = True
.DisplayFormulaBar = True
End With
With ActiveWindow
.DisplayWorkbookTabs = True
.DisplayHeadings = True
End With
End Sub
ChrisV
"Nikelik" news:
Mais entre temps, ça m'a permis de découvrir que d'autres macros plus
simples de mon classeur étaient aussi problématiques, car je souhaiteraient
qu'elles ferment seulement ce classeur et non les autres classeurs ouverts en
même temps (un peu embêtant voire dangereux si on ne veut pas les
enregistrer!) :
Voila les méchantes bébêtes :
Sub Fermer()
' Macro pour fermer avec sauvegarde auomatique
' Touche de raccourci du clavier: Ctrl+f
ActiveWorkbook.Save
Application.Quit
End Sub
Sub FermerWOSave()
' Macro pour fermer avec demande de sauvegarde ou non
Application.Quit
End Sub
Merci pour votre aide et une fois de plus Congratulations!
Nikelik
"ChrisV" wrote:
un save, ça save! Donc je pense que le mieux est de proposer seulement
d'enregistrer la feuille en question et de revenir au mode excel normal pour
évider d'avoir des accidenst avec les autres feuilles ouvertes!
Je vais essayer de me débrouiller seul, mais si vous avez des idées...
Merci beaucoup