Formulaire de connexion Excel VBA
Il est possible de créer un formulaire utilisateur basé sur la connexion dans Excel VBA avec toute la liste déroulante des identifiants de connexion, et le mot de passe sera partagé séparément. À un moment donné, vous devez avoir une idée de la création d'un formulaire utilisateur de connexion basé sur un mot de passe, qui oblige l'utilisateur à choisir son identifiant d'utilisateur et à entrer le mot de passe pour accéder à la feuille de calcul requise.
Dans cet article, nous allons vous montrer comment créer un formulaire d'utilisateur de connexion à l'aide d'Excel VBA.

Comment créer un formulaire d'utilisateur de connexion?
Par exemple, supposons que vous ayez des numéros de ventes par région dans différentes feuilles de calcul. Nous avons 4 noms de zone différents, et chaque feuille de calcul de zone n'a que ses données associées. L'idée est maintenant de créer un formulaire de connexion où le responsable des ventes de la zone «Est» ne devrait voir que les données de la zone «Est», pas d'autres zones, mais en tant qu'administrateur, vous devriez voir toutes les feuilles de calcul des zones.
Tout d'abord, nous devons insérer un nom de feuille appelé "Admin". Dans cette feuille d'administration, nous devons créer des informations d'identification «Identifiant de connexion» et «Mot de passe».

J'ai nommé la zone et le mot de passe de la même manière, vous pouvez changer cela plus tard. Pour les noms de zone, j'ai créé la plage de noms sous la forme "ZoneList". Ce «Gestionnaire de noms» sera utilisé plus tard sur ce formulaire de connexion.

Lorsque l'utilisateur ouvre le fichier, il doit voir une feuille factice en arrière-plan. Créez une nouvelle feuille et nommez-la «Feuille factice». »

À l'aide de ces feuilles de travail, nous créerons un formulaire de connexion.
Étape 1: insérer le formulaire utilisateur
Appuyez sur la touche alt = "" + F11 pour ouvrir la fenêtre de l'éditeur VBA.

- Dans l'onglet "Insertion", insérez "Formulaire utilisateur".

- Cela créera un nouveau formulaire utilisateur comme celui ci-dessous.

- Appuyez sur la touche F4 pour afficher la fenêtre Propriétés. Depuis cette fenêtre de propriétés, changez le nom du formulaire utilisateur en «LoginUF»

- De même, en utilisant cette fenêtre de propriétés, nous pouvons jouer avec les propriétés du formulaire utilisateur. J'ai apporté certains des changements de propriété. Vous pouvez vous référer à la fenêtre des propriétés ci-dessous pour appliquer les modifications aux propriétés du formulaire utilisateur.

- Maintenant, mon formulaire utilisateur ressemble à ceci.

Étape 2: conception du formulaire utilisateur
- À partir de la boîte à outils du formulaire utilisateur, insérez deux zones d'étiquette et saisissez le texte, comme indiqué ci-dessous.

- Dans la boîte à outils, insérez «Combo Box».

- Pour cette zone de liste déroulante Excel, nous devons obtenir les noms de zone à partir de la feuille de calcul "Feuille d'administration", donc à partir de la fenêtre des propriétés de la "Zone de liste déroulante", donnez d'abord un nom à cette zone de liste déroulante comme "Zone_List_ComboBox" sous la propriété "Nom" .

- À partir de la propriété "Source de la ligne" de la zone de liste déroulante, entrez le nom donné à la liste de zones dans la "Feuille d'administration".

- Maintenant, notre liste déroulante devrait afficher les noms de zone dans sa liste déroulante dans Excel.

- Pour «Entrez votre mot de passe», nous devons insérer une «zone de texte» à partir de la boîte à outils.

- Pour cette "Zone de texte", nous devons modifier la propriété "Nom" et la remplacer par "Password_TB".

Désormais, dans le codage du formulaire de connexion VBA, «Combo Box» sera référencé par le nom «Zone_List_ComboBox» et «Text Box» sera référencé par le nom «Password_TB».
- Insérez deux "Boutons de commande" et entrez le texte comme "Connexion" et "Déconnexion".

Pour le bouton de commande «Connexion», remplacez la propriété de nom par «Login_CommandButton» et pour le bouton de commande «Déconnexion», remplacez la propriété de nom par «LogOut_CommandButton».
Étape 3: Code
Nous en avons terminé avec la partie conception du formulaire utilisateur de connexion VBA. Il est temps d'écrire le code pour créer un formulaire utilisateur basé sur la connexion dans Excel VBA.
- Double-cliquez sur le bouton de commande «Connexion». Cela ouvrira une sous-procédure vierge comme celle ci-dessous.

Dans cette procédure, nous devons écrire le code sur ce qui devrait se passer si le bouton «Connexion» est enfoncé.
J'ai déjà écrit le code. Vous pouvez copier et coller le code ci-dessous dans la procédure ci-dessus.
Code:
Private Sub Login_CommandButton_Click () If Zone_List_ComboBox.Value = "" Then MsgBox "La zone ne peut pas être vide !!!", vbInformation, "Zone Name" Quitter la fin du sous-menu si si Password_TB.Value = "" Then MsgBox "Le mot de passe ne peut pas être vide !! ! ", vbInformation," Password "Quitter la sous-fin si si Zone_List_ComboBox.Value =" Admin "et Password_TB.Value =" Admin "Puis déchargez-moi Dim Ws comme feuille de calcul pour chaque Ws dans ActiveWorkbook.Worksheets Ws.Visible = xlSheetVisible Feuilles Ws suivantes ("Admin"). Sélectionnez Else Dim ZoneName As String Dim Password As Variant ZoneName = Zone_List_ComboBox.Value Password = Application.WorksheetFunction.VLookup (ZoneName, Sheets ("Admin"). Range ("A: B"), 2, 0 ) Si le mot de passe Password_TB.Value Then MsgBox "Le mot de passe ne correspond pas", vbInformation,"Mauvais mot de passe" Quitter le sous-menu Si le mot de passe = Mot de passe_TB.Valeur, puis déchargez-moi Feuilles (ZoneName) .Visible = True Sheets (ZoneName) .Sélectionnez ActiveSheet.Range ("A1"). Sélectionnez End If End If End Sub
De même, double-cliquez sur le bouton de commande «Déconnexion» et entrez le code ci-dessous.
Code:
Private Sub LogOut_CommandButton_Click () ThisWorkbook.Save ThisWorkbook.Close End Sub

Maintenant, double-cliquez sur «Formulaire utilisateur» (pas sur l'un des boutons insérés) et ajoutez le code ci-dessous.
Code:
Private Sub UserForm_QueryClose (Cancel As Integer, CloseMode As Integer) 'Empêche l'utilisation du bouton Fermer If CloseMode = vbFormControlMenu Then MsgBox "Cliquer sur le bouton Fermer ne fonctionne pas." Annuler = True End If End Sub

- Maintenant, double-cliquez sur l'icône «ThisWorkbook». Cela s'ouvrira sous le champ de code vide.

Ajoutez maintenant le code ci-dessous dans ce champ vide.
Code:
Private Sub Workbook_Open () Dim Ws As Worksheet Application.DisplayAlerts = False Application.ScreenUpdating = False For Each Ws In ActiveWorkbook.Worksheets If Ws.Name "Dummy" Then Ws.Visible = xlSheetVeryHidden End If Next Ws LogInUF.Show End Sub

- Nous en avons terminé avec la partie codage du formulaire. Enregistrez le classeur en tant que classeur «Macro-Enabled» et rouvrez le classeur. Lors de la réouverture du classeur, nous devrions voir la fenêtre ci-dessous.

- À partir de ce formulaire utilisateur, nous devons choisir le nom de la zone respective et entrer le mot de passe associé. Par exemple, je vais choisir la zone «Est» dans la liste déroulante et entrer le mot de passe.

- Si je clique sur «Connexion», nous ne pouvons voir que la feuille de calcul de la zone «Est».

De même, si nous nous connectons avec «Admin», nous pouvons accéder à toutes les feuilles de calcul.

Comme ça, nous pouvons créer un accès à la feuille de calcul protégé par mot de passe basé sur une connexion.
Choses dont il faut se rappeler
- Vous devez utiliser les mêmes noms que ceux que nous avons donnés au formulaire utilisateur, à la zone de texte, au bouton de commande et à la zone de liste déroulante dans le codage.
- Vous pouvez modifier le nom de la zone et le mot de passe selon votre souhait.