Vous êtes sur la page 1sur 3

TIMSOFT - INITIATION AU LANGAGE VBA

COMMENT MASQUER AUTOMATIQUEMENT LES FEUILLES A


L’OUVERTURE D’UN CLASSEUR EXCEL ET LES AFFICHER VIA
DES MOTS DE PASSE ?
Excel intègre, depuis Office 97/98, un langage de programmation VBA, qui permet de réaliser des
applications puissantes et conviviales. Une macro est un terme générique pour désigner un moyen
de mémoriser un enchaînement de tâches au sein d’un logiciel.
Les macros VBA permettent de compléter des outils bureautiques déjà très performants (EXCEL,
WORD, ACCESS, POWERPOINT, OUTLOOK, PROJECT, VISIO,..)
L’exemple suivante concerne un classeur contenant 5 feuilles dont 4 seront automatiquement masquées
dès l’ouverture du classeur. Ensuite, les codes qui permettront d’afficher une ou des feuilles en saisissant
un mot de passe.
Information :

Les lignes en surbrillance, couleur verte, sont des commentaires pour expliquer les macros

1 Afficher la feuille qui est la page d'accueil à l'ouverture du classeur


Private Sub Workbook_Open() Le nom de la 1ère feuille
dans cet exemple est :
Dim i As Integer
« Accueil » vous pouvez le
Worksheets("Accueil").Activate changer si vous voulez
nommer autrement la
End Sub première feuille
____________________________________________

2 Masquer toutes les autres feuilles contenant les données qu’on veut sécuriser
Sub Masquerfeuille()
Dim i As Integer
If MsgBox("Voulez-vous vraiment masquer les feuilles?", vbYesNo, "Confirmation!") = vbYes Then
For i = 1 To Sheets.Count - 1
Sheets("Donnees " & i).Visible = xlSheetVeryHidden
Les 4 autres feuilles sont
Next i
nommées Donnees 1, à
End If Donnees 4. Donc pour i = 1 à 4
ça fait : (" Donnees " & i)
End Sub

_________________________________________

3 1
Timsoft - développeur d’applications de gestion en Excel VBA site internet : timsoft.e-monsite.com
TIMSOFT - INITIATION AU LANGAGE VBA
Déclaration des variables qui
Déclaration des variables qui seront utilisées seront utilisées
Sub ActiverFeuille() Integer : Nombre entier
Dim i As Integer Variant : type de donnée par
défaut si
Dim MonPassword As Variant on ne peut pas la fixer
Range : cellule(s) d’une feuille
Dim AjoutData As Range
Set AjoutData = Sheets("Donnees 4").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)

On Error GoTo 1
Une boucle permettant de masquer toutes les autres feuilles en affichant la feuille dont le mot de passe
sera inséré
For i = 1 To Sheets.Count - 1 Pour i allant de 1 au nombre total
des feuilles -1 (puisque la première
Sheets("Donnees " & i).Visible = xlSheetVeryHidden feuille ne sera pas masquée) le code
xlSheetVeryHidden permet de
Next i
masquer ces feuilles
Créer une boîte (InputBox) pour la saisie du mot de passe
MonPassword = InputBox("Veuillez saisir votre mot de passe pour accéder à votre feuille :",
"Identification")

InputBox : boîte qui permet de


Définir les mots de passe et les feuilles correspondantes saisir le mot de passe et cliquer
sur ok pour afficher la feuille
If MonPassword = "janvier2017" Then correspondante
Sheets("Donnees 1").Visible = True
Worksheets("Donnees 1").Select
Range("A1").Select
End If
If MonPassword = "fevrier2016" Then
Sheets("Donnees 2").Visible = True
Worksheets("Donnees 2").Select
Codes définissant le mot de
Range("A1").Select
passe qui permet d’afficher
End If la feuille correspondante

If MonPassword = "mars2015" Then


Sheets("Donnees 3").Visible = True
Worksheets("Donnees 3").Select
Range("A1").Select

2
Timsoft - développeur d’applications de gestion en Excel VBA site internet : timsoft.e-monsite.com
TIMSOFT - INITIATION AU LANGAGE VBA
End If

If MonPassword = "suivi" Then


Sheets("Donnees 4").Visible = True
Worksheets("Donnees 4").Select
Range("A1").Select
End If

Ouvrir toutes les feuilles par un mot de passe administrateur

If MonPassword = "admin" Then


For i = 1 To 3 Le mot de passe « admin »
permet d’afficher
Sheets("Donnees " & i).Visible = True
simultanément les 3
Worksheets("Donnees 1").Select feuilles : Donnees 1,
Donnees 2 et Donnees 3
Range("A1").Select
Next i

End If
Insérer les données dans la feuille « Donnees 4 »
If MonPassword <> "" Then
IMPORTANT
AjoutData = MonPassword
Code permettant d’enregistrer
AjoutData.Offset(0, 1).Value = Now automatiquement dans la feuille
de suivi, les mots de passe saisis,
End If les dates et les heures d’accès aux
1 feuilles.
Allez plus haut voir dans les
End Sub
déclaration de variables la feuille
à laquelle AjoutData est liée et
Plus haut nous avons mis ce
qui est la feuille de suivi dans cet
code : On Error GoTo 1
exemple. Vous pouvez la changer
après la déclaration des comme vous voulez
variables. Ceci permet de
gérer les éventuelles erreurs
et d’éviter les blocages dans
l’exécution d’une macro due
à une erreur de saisie
FIN

3
Timsoft - développeur d’applications de gestion en Excel VBA site internet : timsoft.e-monsite.com

Vous aimerez peut-être aussi