Inici de sessió de VBA | Com es crea un formulari d'inici de sessió a Excel VBA?

Formulari d'inici de sessió d'Excel VBA

És possible crear un formulari d'usuari basat en l'inici de sessió a Excel VBA amb tota la llista desplegable d'identificador d'inici de sessió i la contrasenya es compartirà per separat. En algun moment, haureu tingut una idea de crear un formulari d’usuari d’inici de sessió basat en contrasenya que requereixi que l’usuari triï el seu identificador d’usuari i introduïu la contrasenya per accedir al full de treball requerit.

En aquest article, us mostrarem com crear un formulari d’usuari d’inici de sessió mitjançant Excel VBA.

Com es crea un formulari d'usuari d'inici de sessió?

Per exemple, suposem que teniu números de vendes segons la regió en diferents fulls de càlcul. Tenim 4 noms de zones diferents i cada full de treball de zones només té les seves dades relacionades. Ara la idea és crear un formulari d’inici de sessió on el cap de vendes de la zona “Est” només hagi de veure les dades de la zona “Est”, no cap altra zona, sinó que, com a administrador, hauríeu de veure tots els fulls de treball de les zones.

Podeu descarregar aquesta plantilla Excel VBA Login aquí: plantilla Excel VBA Login

En primer lloc, hem d’inserir un nom de full anomenat “Administrador”. En aquest full d’administració, hem de crear les credencials “Identificador d’inici de sessió” i “Contrasenya”.

He anomenat la zona i la contrasenya igual que podeu canviar-la més endavant. Per als noms de zones, he creat l'interval de noms com a "ZoneList". Aquest "gestor de noms" s'utilitzarà més endavant en aquest formulari d'usuari d'inici de sessió.

Quan l'usuari obri el fitxer, hauria de veure un full fictici al fons, així que creeu un full nou i anomeneu-lo com a full "Dummy".

Mitjançant aquests fulls de treball crearem un formulari d’usuari d’inici de sessió.

Pas 1: Inseriu un formulari d'usuari

Premeu la tecla ALT + F11 per obrir la finestra de l'editor VBA.

  • A la pestanya "Insereix", inseriu "Formulari d'usuari".

  • Això crearà un nou formulari d'usuari com el següent.

  • Premeu la tecla F4 per veure la finestra Propietats, des d'aquesta finestra de propietats canvieu el nom del formulari d'usuari per "LoginUF"

  • De la mateixa manera, mitjançant aquesta finestra de propietats podem jugar amb les propietats del formulari d'usuari. He fet alguns dels canvis de propietat; podeu consultar la finestra de propietats següent per aplicar canvis a les propietats del formulari d'usuari.

  • Ara el meu formulari d'usuari té aquest aspecte.

Pas 2: dissenyar la forma d'usuari

  • Des de la caixa d’eines del formulari d’usuari, inseriu dos quadres d’etiquetes i introduïu el text tal com es mostra a continuació.

  • A la caixa d’eines, inseriu “Quadre combinat”.

  • Per a aquest quadre combinat Excel, hem d'obtenir els noms de les zones del full de treball "Full d'administració", de manera que des de la finestra de propietats del "quadre combinat" primer assigneu un nom a aquest quadre combinat com a "Zona_Lista_ComboBox" a la propietat "Nom".

  • A la propietat "Font de fila" del quadre combinat introduïu el nom que es dóna a la llista de zones al "Full d'administració".

  • Ara el nostre quadre combinat hauria de mostrar els noms de les zones a la llista desplegable a excel.

  • Per a "Introduïu la vostra contrasenya", hem d'inserir un "quadre de text" a la caixa d'eines.

  • Per a aquest "quadre de text", hem de canviar la propietat "Nom" i canviar-la com a "Password_TB".

Ara, al formulari d'inici de sessió de codificació de VBA, "Combo Box" es referirà amb el nom "Zone_List_ComboBox" i "Quadre de text" amb el nom "Password_TB".

  • Inseriu dos "botons d'ordres" i introduïu el text com a "Inicia sessió" i "Tanca la sessió".

Per al botó d'ordre "Iniciar sessió", canvieu la propietat del nom per "Login_CommandButton" i per al botó d'ordre "Tancar sessió", canvieu la propietat del nom per "LogOut_CommandButton".

Pas 3: Codi

Hem acabat amb la part de disseny del formulari d’usuari d’inici de sessió VBA, és hora d’escriure el codi per crear un formulari d’usuari basat en l’inici de sessió a VBA excel.

  • Feu doble clic al botó d'ordres "Iniciar sessió", s'obrirà un subprocediment en blanc com el següent.

Dins d’aquest procediment, hem d’escriure el codi sobre què hauria de passar si es prem el botó “Iniciar sessió”.

Ja he escrit el codi, podeu copiar i enganxar el codi des de sota dins del procediment anterior.

Codi:

 Private Sub Login_CommandButton_Click () If Zone_List_ComboBox.Value = "" Aleshores MsgBox "La zona no es pot deixar en blanc !!!", vbInformation, "Name Name" Exit Sub End If If Password_TB.Value = "" La contrasenya de MsgBox "no es pot deixar en blanc !! ! ", vbInformation," Password "Exit Sub End If If Zone_List_ComboBox.Value =" Admin "And Password_TB.Value =" Admin "Després, descarregueu-me Dim Ws com a full de treball per a cada Ws a ActiveWorkbook.Worksheets Ws.Visible = xlSheetVisible Next Ws Sheets ("Administrador"). Seleccioneu Else Dim Alt ZoneName As String Dim Password Com a Variant ZoneName = Zone_List_ComboBox.Value Password = Application.WorksheetFunction.VLookup (ZoneName, Sheets ("Admin"). Range ("A: B"), 2, 0 ) Si Password Password_TB.Value, a continuació, MsgBox "La contrasenya no coincideix", vbInformation, "Wrong Password" Sortir del subfinit Si Password: Password_TB.Value, llavors descarregueu-me fulls (ZoneName). Visible = True Sheets (ZoneName). Seleccioneu ActiveSheet. Rang ("A1"). Seleccioneu Finalitza si Finalitza Si finalitza Sub 

De la mateixa manera, feu doble clic al botó d’ordres “Tanca la sessió” i introduïu el codi següent.

Codi:

 Private Sub LogOut_CommandButton_Click () ThisWorkbook.Save ThisWorkbook.Close End Sub 

Ara feu doble clic a "Formulari d'usuari" (no en cap dels botons inserits) i afegiu el codi següent.

Codi:

 Private Sub UserForm_QueryClose (Cancel·la com a enter, CloseMode com a enter) 'Impedeix l'ús del botó Tanca Si CloseMode = vbFormControlMenu, llavors MsgBox "Fent clic al botó Tanca no funciona". Cancel·la = Final veritable si finalitza sub 

  • Ara feu doble clic a la icona "ThisWorkbook". S'obrirà a sota del camp de codi en blanc.

Ara afegiu el codi següent en aquest camp en blanc.

Codi:

 Private Sub Workbook_Open () Dim Ws As Worksheet Application.DisplayAlerts = False Application.ScreenUpdating = False per a cada Ws a ActiveWorkbook.Worksheets Si Ws.Name "Dummy", llavors Ws.Visible = xlSheetVeryHidden End Si el següent Ws LogInUF. 

  • Hem acabat amb la part de codificació del formulari. Deseu el llibre com a llibre de treball “Macro-Enabled” i torneu a obrir-lo. En tornar a obrir el llibre, hauríem de veure la finestra següent.

  • Des d’aquest formulari d’usuari, hem de triar el nom de zona respectiu i introduir la contrasenya associada. Per exemple, triaré la zona "Est" al menú desplegable i introduiré la contrasenya.

  • Si faig clic a "Inici de sessió", només podrem veure el full de treball de la zona "Est".

De la mateixa manera, si iniciem la sessió amb "Administrador", podem accedir a tots els fulls de treball.

Així, podem crear un accés al full de treball protegit amb contrasenya basat en l’inici de sessió.

Coses que cal recordar

  • Heu d’utilitzar els mateixos noms que hem donat al formulari d’usuari, al quadre de text i al botó d’ordres i al quadre combinat de la codificació.
  • Podeu canviar el nom i la contrasenya de la zona segons el vostre desig.