Utilisation d’un mot de passe unique pour plusieurs classeurs (Microsoft Excel)
Bill a un ensemble de plusieurs classeurs qu’il utilise fréquemment comme suite.
Pour éviter les regards indiscrets sur le contenu de ces classeurs, il a défini un mot de passe pour chacun d’entre eux. Bill utilise un classeur de menu comme passerelle vers les autres classeurs de la suite. Le classeur contient des liens hypertexte vers les classeurs individuels, ce qui lui permet d’accéder rapidement aux classeurs de sa suite.
Étant donné qu’Excel protège, via un mot de passe, chaque classeur au niveau du fichier, chaque fois que Bill clique sur un lien hypertexte, il doit entrer le mot de passe du classeur auquel il tente d’accéder. Il se demande s’il existe un moyen de saisir simplement le mot de passe une seule fois (c’est le même mot de passe pour tous les classeurs de sa suite) et d’avoir accès à tous les classeurs sans avoir à saisir le mot de passe à plusieurs reprises.
La réponse courte est que cela ne peut pas être fait car Excel traite chaque fichier séparément. Basculez vers un fichier séparé via votre lien hypertexte, et Excel demande à nouveau le mot de passe. Il n’y a que deux façons possibles d’éviter la gêne. La première consiste à combiner tous les classeurs séparés en un seul classeur. Cela peut ne pas être une solution optimale, pour un certain nombre de raisons. (Par exemple, vous devrez peut-être distribuer des classeurs individuels à d’autres utilisateurs. Si vous combinez tous les classeurs en un seul, vous supprimez cette fonctionnalité.)
L’autre solution consiste à utiliser une macro pour gérer la commutation entre les classeurs, plutôt que d’utiliser des liens hypertexte. Il existe de nombreuses façons de configurer un tel système de macros, mais un moyen simple qui imite la méthode du lien hypertexte consiste à créer une nouvelle feuille de calcul qui agira comme votre «passerelle». Dans les cellules où vous auriez ajouté des liens hypertexte, placez à la place le chemin complet et le nom de fichier de chaque classeur vers lequel vous souhaitez créer un lien.
Vous devriez vous retrouver avec une liste de spécifications de fichiers pour vos classeurs.
Maintenant, cliquez avec le bouton droit sur l’onglet de la feuille de cette nouvelle feuille de calcul. Excel affiche un menu contextuel dans lequel vous devez sélectionner Afficher le code. Cela affiche l’éditeur VBA, avec le volet de code affiché pour la feuille de calcul. Entrez la macro suivante dans le volet de code:
Private Sub Worksheet_BeforeDoubleClick _ (ByVal Target As Excel.Range, Cancel As Boolean) Dim sPW As String Dim sFile As String sPW = "password" 'Change to your password sFile = Target.Value If sFile <> "" Then If Dir(sFile) <> "" Then Workbooks.Open _ FileName:=sFile, _ password:=sPW Cancel = True End If End If End Sub
La seule chose que vous devriez avoir à modifier dans le code est le mot de passe que vous souhaitez utiliser pour les classeurs auxquels vous accédez. (Le code suppose que le même mot de passe est utilisé pour tous les classeurs.)
Appuyez sur Alt + Q pour quitter l’éditeur VBA, et vous êtes de retour à votre feuille de calcul. Enregistrez le classeur, puis double-cliquez sur l’une des cellules contenant le chemin d’accès et les noms de fichiers. Excel passe ensuite le contrôle à la macro qui saisit le chemin d’accès et le nom de fichier, puis ouvre ce classeur.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (2886) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
link: / excelribbon-Using_a_Single_Password_for_Multiple_Workbooks [Utilisation d’un mot de passe unique pour plusieurs classeurs]
.