Comment protéger efficacement un classeur Excel en utilisant une clé USB comme protection physique ?
Dans ce tutoriel, je vais vous montrer comment utiliser un support physique comme une clé USB en tant que moyen de protection efficace des données contenues dans un classeur Excel.
Ce cryptage sera dynamique, ce qui signifie, que lorsque la clé USB de déverrouillage est insérée dans le port USB du poste de travail, alors les données seront clairement lisibles, en revanche, dès que nous l’ôtons du PC, les données seront masquées.
Téléchargement
Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :
Tutoriel Vidéo
1. Comment protéger les données d’un classeur Excel avec une clé USB ?
Lors de tutoriels précédents, je vous avais montré comment récupérer des données depuis des fichiers externes directement dans Excel.
Nous avions alors vu :
- Comment lire un fichier texte depuis un classeur Excel, sans VBA
- Comment créer une fonction LIRE_TXT() pour récupérer le contenu d’un fichier texte directement dans une cellule Excel.
Maintenant, voyons comment protéger efficacement le contenu d’un fichier Excel, en utilisant une clé USB en tant que moyen de protection physique.
Pour cela, nous allons avoir besoin de :
- Une clé USB (et oui !)
- La fonction LIRE_TXT() que nous avions mise en place dans un tutoriel précédent, nous verrons juste après comment la récupérer très simplement
- L’application L’Encodeur que je vous avais présentée dans un article précédent, laquelle permet de crypter rapidement le contenu des cellules d’une feuille de calcul. Ici, nous allons surtout nous intéresser à la fonctionnalité de Cryptage dynamique proposée par l’application, qui permet de crypter ou décrypter rapidement le contenu des cellules en fonction d’un mot de passe saisi dans une autre cellule. Si vous souhaitez en savoir plus sur l’application L’Encodeur, cliquez ici.
2. Créer la clé de décryptage
Pour commencer, nous allons devoir créer une clé de cryptage/décryptage.
Il s’agit en quelque sorte d’un mot de passe contenant un très grand nombre de caractères aléatoire, donc indéchiffrable !
Pour l’enregistrer, nous allons créer un fichier texte, directement sur la clé USB que nous allons utiliser pour ce tutoriel.
Pour cela, nous nous rendons sur la clé USB, afin d’effectuer un clic droit puis de sélectionner Nouveau > Document Texte :
Nous appelons ce dernier « cle-securite.txt ».
Ensuite, nous saisissons une série de caractère aléatoire en mélangeant des lettres en majuscules, en minuscules, des nombres, des caractères spéciaux, etc.
Si vous manquez d’inspiration, je vous renvoie vers le tutoriel dans lequel nous avions mis en place une fonction de création de mots de passe , ce dernier vous permettra de créer des mots de passe absolument indéchiffrables.
Puis, nous enregistrons ce mot de passe dans le fichier texte :
Ensuite, rendons-nous dans le fichier que nous souhaitons protéger :
Puis, nous allons stocker le contenu du fichier texte dans une cellule, en utilisant la fonction LIRE_TXT() que nous avions créée dans un tutoriel précédent.
Pour récupérer rapidement la fonction LIRE_TXT sans avoir besoin de la saisir à nouveau, il suffit de faire glisser le module d’un projet à l’autre depuis le navigateur de projets de VBE :
Une fois la fonction LIRE_TXT récupérée, il ne reste plus qu’à l’utiliser directement sur la feuille de calcul :
Si nous souhaitons masquer l’affichage de celle-ci, nous pouvons passer le texte en blanc :
Ou pour une solution encore plus efficace, nous pouvons totalement masquer le contenu de la cellule en appuyant sur les touches [Ctrl]+[1] afin de lancer la fenêtre de personnalisation du format de la cellule :
Dans la catégorie de format de texte personnalisé, nous saisissons le format « ;;; » pour rendre le contenu de la cellule G6 totalement invisible.
Il faudra alors évidemment se rappeler que la clé se trouve dans la cellule G6.
Ensuite, nous allons pouvoir utiliser l’application L’Encodeur pour crypter le contenu de la feuille de calcul.
Pour cela, nous commençons par sélectionner les cellules à protéger :
Puis nous allons pouvoir lancer un cryptage dynamique en nous rendant dans le menu « L’encodeur by excelformation.fr », puis en cliquant sur le bouton « Cryptage dynamique » :
Ensuite, sur la boîte de dialogue de paramétrage du cryptage dynamique, nous sélectionnons la cellule G7 dans le champ « Cellule de la clé ».
Il ne reste plus qu’à lancer le cryptage dynamique en appuyant sur le bouton Valider.
Et voilà, le cryptage est lancé !
En apparence, rien n’a changé, sauf si nous consultons la barre des formules, dans laquelle nous pourrons constater que les valeurs ne sont plus affichées directement.
À la place, nous retrouvons une série de caractères saisis dans une fonction deCryptage() que seule l’application L’Encodeur est capable d’interpréter.
3. Rendre le cryptage dynamique en temps réel
Pour finir, nous allons rendre le cryptage dynamique en temps réel !
C’est-à-dire que nous allons forcer la recherche de la clé pour valider l’affichage des données lors de chaque sélection de cellules.
Pour cela, nous allons pouvoir utiliser une macro évènementielle.
Comme nous l’avons vu dans le cours dédié, une macro évènementielle est un type de macro particulier qui se lance automatiquement chaque fois qu’une action donnée se passe au niveau du classeur ou d’une feuille de calcul.
Ici, nous allons souhaiter relancer le cryptage ou le décryptage des cellules chaque fois qu’une nouvelle cellule est sélectionnée sur la feuille de calcul.
Pour cela, revenons dans VBE, afin de double cliquer sur le nom de la feuille de calculs dans laquelle se trouvent les données protégées. Ici, il s’agit de la feuille « excelformation.fr »
Cela permet de lancer la feuille de code de cette dernière, dans laquelle nous allons pouvoir saisir des macros spécifiques à cette feuille uniquement.
Pour créer l’évènement qui va se lancer chaque fois que nous allons cliquer sur une nouvelle cellule, nous sélectionnons dans le menu déroulant situé sur la gauche au-dessus de la feuille de code « Worksheet » :
VBE ajoute alors automatiquement l’évènement « Worksheet_SelectionChange » :
Si nous voulions sélectionner un autre évènement, nous devrions le sélectionner avec le second menu déroulant.
Ensuite, pour automatiser l’actualisation du cryptage, nous saisissons la ligne suivante dans la macro évènementielle ainsi créée :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Calculate
End Sub
Maintenant, dès que nous cliquerons sur une nouvelle cellule :
- Soit la clé USB est insérée dans le lecteur D: et dans ce cas les données seront clairement lisibles,
- Soit elle ne l’est pas et dans ce cas les données seront cryptées
Quelques précisions :
- Ici la protection des données est redoutable, il faut en effet être en possession de la clé avec le fichier texte, mais également d’une version de l’Encodeur installée sur le poste pour pouvoir retrouver les informations cryptées
- Aussi, pensez bien à fournir une clé aux personnes à qui vous transmettez des données,
- Enfin, compte de la force du mot de passe, si vous perdez la clé, que le fichier est écrasé ou modifié, ou encore que la clé est corrompue, il ne sera plus possible d’accéder à vos données, pensez à faire en faire des sauvegardes !