Formulaire de connexion VBA

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 eu l'idée de créer un formulaire de connexion basé sur un mot de passe qui oblige l'utilisateur à choisir son identifiant 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. Maintenant, l'idée est 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.

Vous pouvez télécharger ce modèle Excel de connexion VBA ici - Modèle Excel de connexion VBA

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 que vous pouvez changer cela plus tard. Pour les noms de zone, j'ai créé la plage de noms comme «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, alors créez une nouvelle feuille et nommez-la «Feuille factice» ».

En utilisant ces feuilles de travail, nous allons créer 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.

  • À partir de l'onglet «Insertion», insérez «Formulaire utilisateur».

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

  • Appuyez sur la touche F4 pour voir la fenêtre Propriétés, à partir de 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é certaines des modifications de propriété, vous pouvez vous référer à la fenêtre de 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 entrez le texte comme indiqué ci-dessous.

  • À partir de la boîte à outils, insérez «Combo Box».

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

  • Depuis la propriété «Row Source» de la combo box, entrez le nom donné à la liste de zones dans la «Admin Sheet».

  • Maintenant, notre zone de 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 changer la propriété «Nom» et la changer en «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», changez la propriété de nom en «Login_CommandButton» et pour le bouton de commande «Déconnexion», changez la propriété de nom en «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 doit 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-terminal Si si le mot de passe = Mot de passe_TB.Valeur, puis déchargez-moi Feuilles (Nom de zone) .Visible = True Feuilles (Nom de zone) .Sélectionnez ActiveSheet.Range ("A1"). Sélectionnez Fin si Fin si fin sous

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 à retenir

  • You need to use the same names that we have given to the user form, text box, and command button and combo box in the coding.
  • You can change the zone name and password according to your wish.