Excel formation - Page de vente TCd - 11 Découvrez la méthode complète pour analyser les données efficacement et sans effort avec les tableaux croisés dynamiques, en cliquant ici

Comment tirer une lettre aléatoire pour créer un mot de passe incrackable – La fonction CAR() d’Excel

Aujourd’hui, je vais vous présenter la fonction CAR() d’Exel, qui permet de retourner un caractère spécifique (une lettre, un chiffre, un signe de ponctuation,…) en fonction d’un argument que nous lui spécifions. Nous verrons que grâce à cette fonction nous allons pouvoir simplement tirer une lettre au hasard, ou encore générer un mot de passe tellement complexe qu’il sera impossible de le deviner.

 

Téléchargement

Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
 

 

Tutoriel Vidéo

 

1. Présentation

La fonction CAR(), qui nous intéresse dans le cadre de ce tutoriel permet de générer un caractère particulier, représenté par le jeu de caractère du poste de travail sur lequel celle-ci est utilisée (ANSI ou Macintosh pour les plus répandus).

Dans un précédent tutoriel, nous avons déjà eu l’occasion de découvrir une fonction très proche de la fonction CAR(), il s’agissait de la fonction UNICAR().

Nous avions alors vu que cette fonction UNICAR(), introduite depuis la version 2013 d’Excel permet de récupérer le caractère Unicode qui correspond au nombre spécifié en paramètre.

La principale différence entre ces deux fonctions vient du fait que la fonction CAR() est limitée aux 255 caractères disponibles avec la norme ANSI de Microsoft, là où UNICAR() est tout à fait capable d’en gérer un très grand nombre. De nouveaux caractères étant par ailleurs ajoutés au fil des mises-à-jour de la norme Unicode.

Pour faire simple, la fonction UNICAR() est la version plus moderne de la fonction CAR(),

En dehors de cela, les deux fonctions fonctionnent de la même manière, celles-ci n’attendant qu’un seul argument :

 

 =CAR(A7) 

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 01

Et :

 

 =UNICAR(A7) 

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 02

Pour cet exemple, nous cherchons à afficher les 255 caractères retournés par les deux fonctions.

Après avoir saisis la première ligne, il suffit de sélectionner les deux cellules correspondantes et de double cliquer sur la poignée de recopie pour étendre instantanément la formule sur toutes les lignes :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 03

Nous pouvons alors constater que les résultats retournés sont strictement identiques dans les deux colonnes !

Et nous pouvons par ailleurs en tirer deux conclusions.

Tout d’abord, si nous ajoutons une ligne en dessous du tableau avec le nombre 256 saisi dans la première colonne, puis que nous étendons les formules sur cette nouvelle ligne :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 04

Nous allons alors constater que la fonction UNICAR() va nous retourner le caractère « Ā », tandis que la fonction CAR() va retourner une erreur #VALEUR !

La raison est très simple, et comme nous l’avons vu précédemment cette erreur vient du fait que la fonction CAR() ne peut avoir comme argument qu’un nombre compris entre 1 et 255, ce qui correspond à la norme ANSI.

En revanche, la fonction UNICAR() utilisant la norme Unicode, elle est apte à retourner un très nombre de caractères.

Le second point remarquable se trouve sur les premiers caractères :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 05

Nous pouvons ici constater que les premiers caractères ne sont pas directement exploitables, et nous devons nous rendre sur la ligne contenant l’ID 33 pour apercevoir le premier caractère lisible :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 06

 

2. Tirer un caractère aléatoire

À partir de la table que nous venons de mettre en place, nous pouvons maintenant utiliser la fonction CAR() pour extraire des caractères aléatoirement, en utilisant comme paramètre une valeur tirée elle-même au hasard !

Et pour cela, nous allons utiliser la fonction ALEA.ENTRE.BORNES() que nous avons déjà découverte dans un précédent tutoriel.

Celle-ci permet de récupérer simplement une valeur comprise entre un nombre minimum et un maximum.

Nous avons vu que la fonction CAR() permet de retourner un caractère lisible tant que l’argument est compris entre 33 et 255 :

 

 =CAR(ALEA.ENTRE.BORNES(33;255)) 

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 07

Ensuite, il suffit d’appuyer sur la touche [F9] du clavier pour relancer un nouveau calcul d’Excel et donc modifier la valeur de la cellule :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 08

Si nous souhaitons que le résultat retourné soit uniquement l’une des lettres de l’alphabet, nous allons alors de voir limiter le résultat de la fonction ALEA.ENTRE.BORNES() à un nombre compris entre 65 et 90 :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 09

 

 =CAR(ALEA.ENTRE.BORNES(65;90)) 

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 10

Pour que la lettre tirée soit indifféremment majuscule ou minuscule nous allons devoir ruser légèrement.

En effet, nous venons de voir que les lettres majuscules sont situées aux valeurs 65 et 90 et les lettres minuscules sont quant à elles aux valeurs 97 à 122 :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 11

Soit 32 caractères plus loin dans la liste.

Nous allons donc ajouter à la fonction ALEA.ENTRE.BORNE() un nouveau tirage donc le résultat pourra être égal à 0 ou 1, et ce résultat nous allons simplement le multiplier par 32 (sachant que 0x32 = 0 et 1x32 = 32) :

 

  =CAR(ALEA.ENTRE.BORNES(65;90)+ALEA.ENTRE.BORNES(0;1)*32) 

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 12

3. Un mot de passe impossible à deviner

Maintenant, en allant un cran plus loin, découvrons comment créer un mot de passe impossible à deviner.

Pour cela, il va simplement suffit d’utiliser les notions que nous venons de découvrir pour récupérer une succession de caractères aléatoires que nous concaténons les uns aux autres avec l’esperluette (ou la fonction CONCATENER()) :

 

  =CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))  

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 13

Bien entendu, un mot de passe comme celui-ci est indéchiffrable, mais il est également très difficile à saisir étant constitué de nombreux caractères spéciaux.

Pour en simplifier la saisie, tout en le rendant presque impossible à retrouver, nous allons simplement borner le l’obtention du nombre aléatoire à 126, pour en obtenir le dernier caractère simple à saisir de la liste :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 14

Pour cela, nous sélectionnons deux cellules parmi laquelle se trouve la cellule sur laquelle nous souhaitons effectuer la modification :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 15

Puis, nous appelons la fonctionnalité de remplacement proposée par Excel que nous avons déjà eu l’occasion de découvrir dans un précédant tutoriel, afin de demander à Excel de remplacer tous les nombres « 255 » par des « 126 » :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 16

Et voilà, notre nouveau mot de passe est maintenant près !

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 17

 

 



Articles qui pourraient vous intéresser

Comment simplifier les formules avec l’automatisation des plages nommées d’Excel
Comment ajouter automatiquement une ligne lors d’un changement de valeur dans une colonne Excel
Comment tirer une lettre aléatoire pour créer un mot de passe incrackable – La fonction CAR() d’Excel
Comment créer une zone d’impression dynamique et intelligente sur Excel
Comment supprimer les lignes vides ou avec des cellules vides d’un tableau sur Excel
Comment géolocaliser une adresse sur Google Maps en 1 clic avec Excel
Comment calculer le taux de rendement interne d’un projet sur Excel (fonction TRI)
Comment envoyer la sélection par mail en 1 clic avec VBA sur Excel
Comment afficher plusieurs onglets d'un même classeur grâce au multi-fenêtrage d'Excel
Comment convertir des CSV en fichier Excel en masse (tous les fichiers d’un répertoire) avec VBA
6 Astuces pour envoyer facilement un fichier Excel par mail (sans VBA)
3 méthodes pour transformer un texte en majuscule (ou en minuscule) sur Excel

Contact - Plan du site - À propos - Contact

© Excel-Formation 2018 - Excel, simplement

Haut de la page

Excelformation.fr propose de nombreuses formations pratiques et gratuites sur Microsoft Excel : des cours pour apprendre à structurer et analyser les données, des tutos sur les fonctions avancées, les formules et les formules avancées d'Excel, les formules matricielles, les mise-en-formes conditionnelles, les graphiques Excel (xls, xlsx, xlsm,…). Des tutoriels pour apprendre à automatiser les tâches répétitives (via des macro-commandes en VBA) de vos classeurs Excel.