Contrôlez l'apparence d'une feuille par le biais d'un code VBA s'exécutant dès l'activation de la feuille ou dès l'ouverture du classeur :
' Empêcher l'affichage des en-têtes de lignes / colonnes
If ActiveWindow.DisplayHeadings = True Then
ActiveWindow.DisplayHeadings = False
Dim Reponse As Integer
Reponse = MsgBox("Veuillez ne pas modifier l'apparence de cette page", vbCritical, "Attention")
End If
'Empêcher la sélection d'une cellule pour la modifier
ActiveSheet.Range("A65535").Select
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 1
End Sub
Empêchez également l'utilisateur d'effectuer des actions de mise en forme en désactivant le clic droit sur la feuille :
- Cacher les barres d'outils (propriétés de l'objet Application)
- Cacher la grille (propriété de l'objet ActiveWindow)
- Supprimez l'affichage des en-têtes de lignes et de colonnes (propriété de l'objet ActiveWindow)
- Lancez l'affichage en plein écran
Et surtout, empêchez l'utilisateur d'aller dans le menu d'options d'affichage pour réactiver ces éléments :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Apparence initiale du classeur Excel (cliquez pour agrandir) |
Apparence neutre du classeur Excel après application de la procédure Workbook_Open() (cliquez pour agrandir) |
Et surtout, empêchez l'utilisateur d'aller dans le menu d'options d'affichage pour réactiver ces éléments :
' Empêcher l'affichage des en-têtes de lignes / colonnes
If ActiveWindow.DisplayHeadings = True Then
ActiveWindow.DisplayHeadings = False
Dim Reponse As Integer
Reponse = MsgBox("Veuillez ne pas modifier l'apparence de cette page", vbCritical, "Attention")
End If
'Empêcher la sélection d'une cellule pour la modifier
ActiveSheet.Range("A65535").Select
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 1
End Sub
Empêchez également l'utilisateur d'effectuer des actions de mise en forme en désactivant le clic droit sur la feuille :
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
End Sub
Cancel = True
End Sub
Bien entendu, tout cela peut être appliqué à l'ensemble des feuilles du classeur en appliquant la procédure suivante à l'évènement Open du Workbook :
Private Sub Workbook_Open()
With ActiveWindow
.DisplayGridlines = False
.DisplayHeadings = False
.DisplayWorkbookTabs = False
End With
With Application
.ShowStartupDialog = False
.DisplayFormulaBar = False
End With
Application.CommandBars("worksheet menu bar").Enabled = False
If Application.CommandBars("Standard").Visible = True Then
Application.CommandBars("Standard").Visible = False
End If
If Application.CommandBars("Formatting").Visible = True Then
Application.CommandBars("Formatting").Visible = False
End If
If Application.CommandBars("Borders").Visible = True Then
Application.CommandBars("Borders").Visible = False
End If
If Application.CommandBars("Chart").Visible = True Then
Application.CommandBars("Chart").Visible = False
End If
If Application.CommandBars("Control Toolbox").Visible = True Then
Application.CommandBars("Control Toolbox").Visible = False
End If
If Application.CommandBars("Drawing").Visible = True Then
Application.CommandBars("Drawing").Visible = False
End If
If Application.CommandBars("External Data").Visible = True Then
Application.CommandBars("External Data").Visible = False
End If
If Application.CommandBars("Forms").Visible = True Then
Application.CommandBars("Forms").Visible = False
End If
If Application.CommandBars("Formula Auditing").Visible = True Then
Application.CommandBars("Formula Auditing").Visible = False
End If
If Application.CommandBars("List").Visible = True Then
Application.CommandBars("List").Visible = False
End If
If Application.CommandBars("Picture").Visible = True Then
Application.CommandBars("Picture").Visible = False
End If
If Application.CommandBars("PivotTable").Visible = True Then
Application.CommandBars("PivotTable").Visible = False
End If
If Application.CommandBars("Protection").Visible = True Then
Application.CommandBars("Protection").Visible = False
End If
If Application.CommandBars("Reviewing").Visible = True Then
Application.CommandBars("Reviewing").Visible = False
End If
If Application.CommandBars("Task Pane").Visible = True Then
Application.CommandBars("Task Pane").Visible = False
End If
If Application.CommandBars("Text To Speech").Visible = True Then
Application.CommandBars("Text To Speech").Visible = False
End If
If Application.CommandBars("Visual Basic").Visible = True Then
Application.CommandBars("Visual Basic").Visible = False
End If
If Application.CommandBars("Watch Window").Visible = True Then
Application.CommandBars("Watch Window").Visible = False
End If
If Application.CommandBars("Web").Visible = True Then
Application.CommandBars("Web").Visible = False
End If
If Application.CommandBars("WordArt").Visible = True Then
Application.CommandBars("WordArt").Visible = False
End If
If Application.CommandBars("Exit Design Mode").Visible = True Then
Application.CommandBars("Exit Design Mode").Visible = False
End If
If Application.CommandBars("Full Screen").Visible = True Then
Application.CommandBars("Full Screen").Visible = False
End If
If Application.CommandBars("Organization Chart").Visible = True Then
Application.CommandBars("Organization Chart").Visible = False
End If
If Application.CommandBars("Shadow Settings").Visible = True Then
Application.CommandBars("Shadow Settings").Visible = False
End If
If Application.CommandBars("Drawing Canvas").Visible = True Then
Application.CommandBars("Drawing Canvas").Visible = False
End If
If Application.CommandBars("Diagram").Visible = True Then
Application.CommandBars("Diagram").Visible = False
End If
If Application.CommandBars("Compare Side by Side").Visible = True Then
Application.CommandBars("Compare Side by Side").Visible = False
End If
If Application.CommandBars("Circular Reference").Visible = True Then
Application.CommandBars("Circular Reference").Visible = False
End If
If Application.CommandBars("Chart Menu Bar").Visible = True Then
Application.CommandBars("Chart Menu Bar").Visible = False
End If
If Application.CommandBars("3-D Settings").Visible = True Then
Application.CommandBars("3-D Settings").Visible = False
End If
End Sub
Private Sub Workbook_Open()
With ActiveWindow
.DisplayGridlines = False
.DisplayHeadings = False
.DisplayWorkbookTabs = False
End With
With Application
.ShowStartupDialog = False
.DisplayFormulaBar = False
End With
Application.CommandBars("worksheet menu bar").Enabled = False
If Application.CommandBars("Standard").Visible = True Then
Application.CommandBars("Standard").Visible = False
End If
If Application.CommandBars("Formatting").Visible = True Then
Application.CommandBars("Formatting").Visible = False
End If
If Application.CommandBars("Borders").Visible = True Then
Application.CommandBars("Borders").Visible = False
End If
If Application.CommandBars("Chart").Visible = True Then
Application.CommandBars("Chart").Visible = False
End If
If Application.CommandBars("Control Toolbox").Visible = True Then
Application.CommandBars("Control Toolbox").Visible = False
End If
If Application.CommandBars("Drawing").Visible = True Then
Application.CommandBars("Drawing").Visible = False
End If
If Application.CommandBars("External Data").Visible = True Then
Application.CommandBars("External Data").Visible = False
End If
If Application.CommandBars("Forms").Visible = True Then
Application.CommandBars("Forms").Visible = False
End If
If Application.CommandBars("Formula Auditing").Visible = True Then
Application.CommandBars("Formula Auditing").Visible = False
End If
If Application.CommandBars("List").Visible = True Then
Application.CommandBars("List").Visible = False
End If
If Application.CommandBars("Picture").Visible = True Then
Application.CommandBars("Picture").Visible = False
End If
If Application.CommandBars("PivotTable").Visible = True Then
Application.CommandBars("PivotTable").Visible = False
End If
If Application.CommandBars("Protection").Visible = True Then
Application.CommandBars("Protection").Visible = False
End If
If Application.CommandBars("Reviewing").Visible = True Then
Application.CommandBars("Reviewing").Visible = False
End If
If Application.CommandBars("Task Pane").Visible = True Then
Application.CommandBars("Task Pane").Visible = False
End If
If Application.CommandBars("Text To Speech").Visible = True Then
Application.CommandBars("Text To Speech").Visible = False
End If
If Application.CommandBars("Visual Basic").Visible = True Then
Application.CommandBars("Visual Basic").Visible = False
End If
If Application.CommandBars("Watch Window").Visible = True Then
Application.CommandBars("Watch Window").Visible = False
End If
If Application.CommandBars("Web").Visible = True Then
Application.CommandBars("Web").Visible = False
End If
If Application.CommandBars("WordArt").Visible = True Then
Application.CommandBars("WordArt").Visible = False
End If
If Application.CommandBars("Exit Design Mode").Visible = True Then
Application.CommandBars("Exit Design Mode").Visible = False
End If
If Application.CommandBars("Full Screen").Visible = True Then
Application.CommandBars("Full Screen").Visible = False
End If
If Application.CommandBars("Organization Chart").Visible = True Then
Application.CommandBars("Organization Chart").Visible = False
End If
If Application.CommandBars("Shadow Settings").Visible = True Then
Application.CommandBars("Shadow Settings").Visible = False
End If
If Application.CommandBars("Drawing Canvas").Visible = True Then
Application.CommandBars("Drawing Canvas").Visible = False
End If
If Application.CommandBars("Diagram").Visible = True Then
Application.CommandBars("Diagram").Visible = False
End If
If Application.CommandBars("Compare Side by Side").Visible = True Then
Application.CommandBars("Compare Side by Side").Visible = False
End If
If Application.CommandBars("Circular Reference").Visible = True Then
Application.CommandBars("Circular Reference").Visible = False
End If
If Application.CommandBars("Chart Menu Bar").Visible = True Then
Application.CommandBars("Chart Menu Bar").Visible = False
End If
If Application.CommandBars("3-D Settings").Visible = True Then
Application.CommandBars("3-D Settings").Visible = False
End If
End Sub
Seul petit bémol : un développeur aguerri saura activer le mode "Création" dans l'onglet "Visual Basic" (MS 2003) / "Développeur" (MS 2007/2010) pour accéder au contenu des cellules. Il ne pourra cependant pas modifier durablement l'apparence de la feuille car celle-ci reviendra automatiquement à l'apparence que vous lui avez fixée dès qu'elle sera ré-activée.
Aucun commentaire:
Enregistrer un commentaire