Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Limitation de l'action de macros à une seule feuille

4 réponses
Avatar
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é

4 réponses

Avatar
anonymousA
bonjour,

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+


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é


Avatar
ChrisV
Bonjour Nikelik,

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" a écrit dans le message de
news:
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é


Avatar
Nikelik
Merci pour vos réponses rapides et très efficaces! ça fonctionne à merveille.
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:

Bonjour Nikelik,

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" a écrit dans le message de
news:
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é







Avatar
Nikelik
Pardonner mon erreur de jeunesse sur vba, car il est évident que si on fait
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


Merci pour vos réponses rapides et très efficaces! ça fonctionne à merveille.
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:

Bonjour Nikelik,

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" a écrit dans le message de
news:
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é