Bonjour,
J ai une feuille avec une protection, mais l utilisateur peux toujours aller
dans option cocher barre des formules et voir la formule comment faire
merci
lionel
Bonjour,
J ai une feuille avec une protection, mais l utilisateur peux toujours aller
dans option cocher barre des formules et voir la formule comment faire
merci
lionel
Bonjour,
J ai une feuille avec une protection, mais l utilisateur peux toujours aller
dans option cocher barre des formules et voir la formule comment faire
merci
lionel
Bonjour,
Un code qui devrait résoudre votre problème.
j 'espère que vous comprendrez car c'est complexe.
MODULE DE CLASSE
1) Créez un module de classe et renommez le IMPERATIVEMENT ButtonE vents
2) Insérez y le code suivant
'*******************
Private WithEvents ButtonClickEvent As Office.CommandBarButton
'____________________________________
Private Sub ButtonClickEvent_Click _
(ByVal Button As Office.CommandBarButton, _
Cancel As Boolean)
Call NoFormule
Cancel = True
End Sub
'____________________________________
Public Sub Initialize(Button As Office.CommandBarButton)
Set ButtonClickEvent = Button
End Sub
'*******************
Tout cela pour émuler un bouton office qui possède l'évà ¨nement Click
qu 'on pourra utiliser, par la suite, pour intercepter l'action utilisa teur
consistant à cliquer sur Outils/Options.
MODULE NORMAL
1) Insérez le code suivant dans un module général
'*******************
'#### Changer la valeur de la constante MAFEUILLE ####
'#### selon le nom de la feuille où s'applique la ####
'#### désactivation de la barre de formule. ####
'#### Changer "TEST" par "Toto" par exemple ####
Const MAFEUILLE As String = "TEST"
'######################################################
Public OptionsEvent As New ButtonEvents
'____________________________________
Sub BoutonOptions()
Dim i&
Dim B As CommandBar
Dim C As Office.CommandBarButton
Set B = Application.CommandBars("Tools")
For i& = 1 To B.Controls.Count
If B.Controls(i&).ID = 522 Then 'IDR2 => bouton Options
Set C = B.Controls(i&)
Exit For
End If
Next
OptionsEvent.Initialize C
End Sub
'____________________________________
Sub NoFormule(Optional void As Byte)
If ActiveSheet.Name <> MAFEUILLE Then Exit Sub
Application.Dialogs(320).Show
If Application.DisplayFormulaBar Then _
Application.DisplayFormulaBar = False
End Sub
'*******************
Le nom "TEST" de la Const MAFEUILLE As String = "TEST" est à ada pter
selon le nom de la feuille concernée.
L 'argument Optional void As Byte est un argument bidon qui ne sert
qu 'à masquer la macro dans la boîte de macros. Vous pouvez l 'enlever
si vous voulez.
MODULE EVENEMENTIEL
1) Insérez le code suivant dans le module évènementiel d e feuille concernée
'*******************
Private Sub Worksheet_Activate()
Application.DisplayFormulaBar = False
Call BoutonOptions
End Sub
Private Sub Worksheet_Deactivate()
Application.DisplayFormulaBar = True
Set OptionsEvent = Nothing
End Sub
'*******************
Il n'y a plus qu'Ã essayer.
Cordialement.
Bonjour,
Un code qui devrait résoudre votre problème.
j 'espère que vous comprendrez car c'est complexe.
MODULE DE CLASSE
1) Créez un module de classe et renommez le IMPERATIVEMENT ButtonE vents
2) Insérez y le code suivant
'*******************
Private WithEvents ButtonClickEvent As Office.CommandBarButton
'____________________________________
Private Sub ButtonClickEvent_Click _
(ByVal Button As Office.CommandBarButton, _
Cancel As Boolean)
Call NoFormule
Cancel = True
End Sub
'____________________________________
Public Sub Initialize(Button As Office.CommandBarButton)
Set ButtonClickEvent = Button
End Sub
'*******************
Tout cela pour émuler un bouton office qui possède l'évà ¨nement Click
qu 'on pourra utiliser, par la suite, pour intercepter l'action utilisa teur
consistant à cliquer sur Outils/Options.
MODULE NORMAL
1) Insérez le code suivant dans un module général
'*******************
'#### Changer la valeur de la constante MAFEUILLE ####
'#### selon le nom de la feuille où s'applique la ####
'#### désactivation de la barre de formule. ####
'#### Changer "TEST" par "Toto" par exemple ####
Const MAFEUILLE As String = "TEST"
'######################################################
Public OptionsEvent As New ButtonEvents
'____________________________________
Sub BoutonOptions()
Dim i&
Dim B As CommandBar
Dim C As Office.CommandBarButton
Set B = Application.CommandBars("Tools")
For i& = 1 To B.Controls.Count
If B.Controls(i&).ID = 522 Then 'ID=522 => bouton Options
Set C = B.Controls(i&)
Exit For
End If
Next
OptionsEvent.Initialize C
End Sub
'____________________________________
Sub NoFormule(Optional void As Byte)
If ActiveSheet.Name <> MAFEUILLE Then Exit Sub
Application.Dialogs(320).Show
If Application.DisplayFormulaBar Then _
Application.DisplayFormulaBar = False
End Sub
'*******************
Le nom "TEST" de la Const MAFEUILLE As String = "TEST" est à ada pter
selon le nom de la feuille concernée.
L 'argument Optional void As Byte est un argument bidon qui ne sert
qu 'à masquer la macro dans la boîte de macros. Vous pouvez l 'enlever
si vous voulez.
MODULE EVENEMENTIEL
1) Insérez le code suivant dans le module évènementiel d e feuille concernée
'*******************
Private Sub Worksheet_Activate()
Application.DisplayFormulaBar = False
Call BoutonOptions
End Sub
Private Sub Worksheet_Deactivate()
Application.DisplayFormulaBar = True
Set OptionsEvent = Nothing
End Sub
'*******************
Il n'y a plus qu'Ã essayer.
Cordialement.
Bonjour,
Un code qui devrait résoudre votre problème.
j 'espère que vous comprendrez car c'est complexe.
MODULE DE CLASSE
1) Créez un module de classe et renommez le IMPERATIVEMENT ButtonE vents
2) Insérez y le code suivant
'*******************
Private WithEvents ButtonClickEvent As Office.CommandBarButton
'____________________________________
Private Sub ButtonClickEvent_Click _
(ByVal Button As Office.CommandBarButton, _
Cancel As Boolean)
Call NoFormule
Cancel = True
End Sub
'____________________________________
Public Sub Initialize(Button As Office.CommandBarButton)
Set ButtonClickEvent = Button
End Sub
'*******************
Tout cela pour émuler un bouton office qui possède l'évà ¨nement Click
qu 'on pourra utiliser, par la suite, pour intercepter l'action utilisa teur
consistant à cliquer sur Outils/Options.
MODULE NORMAL
1) Insérez le code suivant dans un module général
'*******************
'#### Changer la valeur de la constante MAFEUILLE ####
'#### selon le nom de la feuille où s'applique la ####
'#### désactivation de la barre de formule. ####
'#### Changer "TEST" par "Toto" par exemple ####
Const MAFEUILLE As String = "TEST"
'######################################################
Public OptionsEvent As New ButtonEvents
'____________________________________
Sub BoutonOptions()
Dim i&
Dim B As CommandBar
Dim C As Office.CommandBarButton
Set B = Application.CommandBars("Tools")
For i& = 1 To B.Controls.Count
If B.Controls(i&).ID = 522 Then 'IDR2 => bouton Options
Set C = B.Controls(i&)
Exit For
End If
Next
OptionsEvent.Initialize C
End Sub
'____________________________________
Sub NoFormule(Optional void As Byte)
If ActiveSheet.Name <> MAFEUILLE Then Exit Sub
Application.Dialogs(320).Show
If Application.DisplayFormulaBar Then _
Application.DisplayFormulaBar = False
End Sub
'*******************
Le nom "TEST" de la Const MAFEUILLE As String = "TEST" est à ada pter
selon le nom de la feuille concernée.
L 'argument Optional void As Byte est un argument bidon qui ne sert
qu 'à masquer la macro dans la boîte de macros. Vous pouvez l 'enlever
si vous voulez.
MODULE EVENEMENTIEL
1) Insérez le code suivant dans le module évènementiel d e feuille concernée
'*******************
Private Sub Worksheet_Activate()
Application.DisplayFormulaBar = False
Call BoutonOptions
End Sub
Private Sub Worksheet_Deactivate()
Application.DisplayFormulaBar = True
Set OptionsEvent = Nothing
End Sub
'*******************
Il n'y a plus qu'Ã essayer.
Cordialement.
Bonsoir,
Il y a bien + simple et aucune macro n'est nécessaire, a fortiori un module de classe :-))
Déprotège ta feuille, puis va dans Format Cellule, onglet Protection.
Par défaut "Verrouillée" est cochée pour toutes les cellules, et "Masquée" ne l'est pour aucune.
Coche "Masquée" pour les cellules dont tu veux que la formule ne soit pas visible, ou éventuellement pour toutes les
cellules. Reprotège la feuille, et miracle, les formules des cellules masquées ne sont + visibles. :-))))Bonjour,
Un code qui devrait résoudre votre problème.
j 'espère que vous comprendrez car c'est complexe.
MODULE DE CLASSE
1) Créez un module de classe et renommez le IMPERATIVEMENT ButtonEvents
2) Insérez y le code suivant
'*******************
Private WithEvents ButtonClickEvent As Office.CommandBarButton
'____________________________________
Private Sub ButtonClickEvent_Click _
(ByVal Button As Office.CommandBarButton, _
Cancel As Boolean)
Call NoFormule
Cancel = True
End Sub
'____________________________________
Public Sub Initialize(Button As Office.CommandBarButton)
Set ButtonClickEvent = Button
End Sub
'*******************
Tout cela pour émuler un bouton office qui possède l'évènement Click
qu 'on pourra utiliser, par la suite, pour intercepter l'action utilisateur
consistant à cliquer sur Outils/Options.
MODULE NORMAL
1) Insérez le code suivant dans un module général
'*******************
'#### Changer la valeur de la constante MAFEUILLE ####
'#### selon le nom de la feuille où s'applique la ####
'#### désactivation de la barre de formule. ####
'#### Changer "TEST" par "Toto" par exemple ####
Const MAFEUILLE As String = "TEST"
'######################################################
Public OptionsEvent As New ButtonEvents
'____________________________________
Sub BoutonOptions()
Dim i&
Dim B As CommandBar
Dim C As Office.CommandBarButton
Set B = Application.CommandBars("Tools")
For i& = 1 To B.Controls.Count
If B.Controls(i&).ID = 522 Then 'IDR2 => bouton Options
Set C = B.Controls(i&)
Exit For
End If
Next
OptionsEvent.Initialize C
End Sub
'____________________________________
Sub NoFormule(Optional void As Byte)
If ActiveSheet.Name <> MAFEUILLE Then Exit Sub
Application.Dialogs(320).Show
If Application.DisplayFormulaBar Then _
Application.DisplayFormulaBar = False
End Sub
'*******************
Le nom "TEST" de la Const MAFEUILLE As String = "TEST" est à adapter
selon le nom de la feuille concernée.
L 'argument Optional void As Byte est un argument bidon qui ne sert
qu 'à masquer la macro dans la boîte de macros. Vous pouvez l'enlever
si vous voulez.
MODULE EVENEMENTIEL
1) Insérez le code suivant dans le module évènementiel de feuille concernée
'*******************
Private Sub Worksheet_Activate()
Application.DisplayFormulaBar = False
Call BoutonOptions
End Sub
Private Sub Worksheet_Deactivate()
Application.DisplayFormulaBar = True
Set OptionsEvent = Nothing
End Sub
'*******************
Il n'y a plus qu'à essayer.
Cordialement.
--
Cordialement,
Michel Gaboly
www.gaboly.com
Bonsoir,
Il y a bien + simple et aucune macro n'est nécessaire, a fortiori un module de classe :-))
Déprotège ta feuille, puis va dans Format Cellule, onglet Protection.
Par défaut "Verrouillée" est cochée pour toutes les cellules, et "Masquée" ne l'est pour aucune.
Coche "Masquée" pour les cellules dont tu veux que la formule ne soit pas visible, ou éventuellement pour toutes les
cellules. Reprotège la feuille, et miracle, les formules des cellules masquées ne sont + visibles. :-))))
Bonjour,
Un code qui devrait résoudre votre problème.
j 'espère que vous comprendrez car c'est complexe.
MODULE DE CLASSE
1) Créez un module de classe et renommez le IMPERATIVEMENT ButtonEvents
2) Insérez y le code suivant
'*******************
Private WithEvents ButtonClickEvent As Office.CommandBarButton
'____________________________________
Private Sub ButtonClickEvent_Click _
(ByVal Button As Office.CommandBarButton, _
Cancel As Boolean)
Call NoFormule
Cancel = True
End Sub
'____________________________________
Public Sub Initialize(Button As Office.CommandBarButton)
Set ButtonClickEvent = Button
End Sub
'*******************
Tout cela pour émuler un bouton office qui possède l'évènement Click
qu 'on pourra utiliser, par la suite, pour intercepter l'action utilisateur
consistant à cliquer sur Outils/Options.
MODULE NORMAL
1) Insérez le code suivant dans un module général
'*******************
'#### Changer la valeur de la constante MAFEUILLE ####
'#### selon le nom de la feuille où s'applique la ####
'#### désactivation de la barre de formule. ####
'#### Changer "TEST" par "Toto" par exemple ####
Const MAFEUILLE As String = "TEST"
'######################################################
Public OptionsEvent As New ButtonEvents
'____________________________________
Sub BoutonOptions()
Dim i&
Dim B As CommandBar
Dim C As Office.CommandBarButton
Set B = Application.CommandBars("Tools")
For i& = 1 To B.Controls.Count
If B.Controls(i&).ID = 522 Then 'IDR2 => bouton Options
Set C = B.Controls(i&)
Exit For
End If
Next
OptionsEvent.Initialize C
End Sub
'____________________________________
Sub NoFormule(Optional void As Byte)
If ActiveSheet.Name <> MAFEUILLE Then Exit Sub
Application.Dialogs(320).Show
If Application.DisplayFormulaBar Then _
Application.DisplayFormulaBar = False
End Sub
'*******************
Le nom "TEST" de la Const MAFEUILLE As String = "TEST" est à adapter
selon le nom de la feuille concernée.
L 'argument Optional void As Byte est un argument bidon qui ne sert
qu 'à masquer la macro dans la boîte de macros. Vous pouvez l'enlever
si vous voulez.
MODULE EVENEMENTIEL
1) Insérez le code suivant dans le module évènementiel de feuille concernée
'*******************
Private Sub Worksheet_Activate()
Application.DisplayFormulaBar = False
Call BoutonOptions
End Sub
Private Sub Worksheet_Deactivate()
Application.DisplayFormulaBar = True
Set OptionsEvent = Nothing
End Sub
'*******************
Il n'y a plus qu'à essayer.
Cordialement.
--
Cordialement,
Michel Gaboly
www.gaboly.com
Bonsoir,
Il y a bien + simple et aucune macro n'est nécessaire, a fortiori un module de classe :-))
Déprotège ta feuille, puis va dans Format Cellule, onglet Protection.
Par défaut "Verrouillée" est cochée pour toutes les cellules, et "Masquée" ne l'est pour aucune.
Coche "Masquée" pour les cellules dont tu veux que la formule ne soit pas visible, ou éventuellement pour toutes les
cellules. Reprotège la feuille, et miracle, les formules des cellules masquées ne sont + visibles. :-))))Bonjour,
Un code qui devrait résoudre votre problème.
j 'espère que vous comprendrez car c'est complexe.
MODULE DE CLASSE
1) Créez un module de classe et renommez le IMPERATIVEMENT ButtonEvents
2) Insérez y le code suivant
'*******************
Private WithEvents ButtonClickEvent As Office.CommandBarButton
'____________________________________
Private Sub ButtonClickEvent_Click _
(ByVal Button As Office.CommandBarButton, _
Cancel As Boolean)
Call NoFormule
Cancel = True
End Sub
'____________________________________
Public Sub Initialize(Button As Office.CommandBarButton)
Set ButtonClickEvent = Button
End Sub
'*******************
Tout cela pour émuler un bouton office qui possède l'évènement Click
qu 'on pourra utiliser, par la suite, pour intercepter l'action utilisateur
consistant à cliquer sur Outils/Options.
MODULE NORMAL
1) Insérez le code suivant dans un module général
'*******************
'#### Changer la valeur de la constante MAFEUILLE ####
'#### selon le nom de la feuille où s'applique la ####
'#### désactivation de la barre de formule. ####
'#### Changer "TEST" par "Toto" par exemple ####
Const MAFEUILLE As String = "TEST"
'######################################################
Public OptionsEvent As New ButtonEvents
'____________________________________
Sub BoutonOptions()
Dim i&
Dim B As CommandBar
Dim C As Office.CommandBarButton
Set B = Application.CommandBars("Tools")
For i& = 1 To B.Controls.Count
If B.Controls(i&).ID = 522 Then 'IDR2 => bouton Options
Set C = B.Controls(i&)
Exit For
End If
Next
OptionsEvent.Initialize C
End Sub
'____________________________________
Sub NoFormule(Optional void As Byte)
If ActiveSheet.Name <> MAFEUILLE Then Exit Sub
Application.Dialogs(320).Show
If Application.DisplayFormulaBar Then _
Application.DisplayFormulaBar = False
End Sub
'*******************
Le nom "TEST" de la Const MAFEUILLE As String = "TEST" est à adapter
selon le nom de la feuille concernée.
L 'argument Optional void As Byte est un argument bidon qui ne sert
qu 'à masquer la macro dans la boîte de macros. Vous pouvez l'enlever
si vous voulez.
MODULE EVENEMENTIEL
1) Insérez le code suivant dans le module évènementiel de feuille concernée
'*******************
Private Sub Worksheet_Activate()
Application.DisplayFormulaBar = False
Call BoutonOptions
End Sub
Private Sub Worksheet_Deactivate()
Application.DisplayFormulaBar = True
Set OptionsEvent = Nothing
End Sub
'*******************
Il n'y a plus qu'à essayer.
Cordialement.
--
Cordialement,
Michel Gaboly
www.gaboly.com
Bonjour Michel,
Bravo pour la manipulation qui devrait satisfaire Lionel.
Si j'ai élucubrer c'est parce que je ne la connaissais pas.
Cordialement.
Bonjour Michel,
Bravo pour la manipulation qui devrait satisfaire Lionel.
Si j'ai élucubrer c'est parce que je ne la connaissais pas.
Cordialement.
Bonjour Michel,
Bravo pour la manipulation qui devrait satisfaire Lionel.
Si j'ai élucubrer c'est parce que je ne la connaissais pas.
Cordialement.