Είσοδος VBA | Πώς να δημιουργήσετε μια φόρμα σύνδεσης στο Excel VBA;
Φόρμα σύνδεσης Excel VBA
Είναι δυνατή η δημιουργία μιας φόρμας χρήστη βάσει σύνδεσης στο excel VBA με όλη την αναπτυσσόμενη λίστα αναγνωριστικών σύνδεσης και ο κωδικός πρόσβασης θα κοινοποιείται ξεχωριστά. Σε κάποια στιγμή, πρέπει να έχετε μια ιδέα να δημιουργήσετε μια φόρμα χρήστη σύνδεσης με κωδικό πρόσβασης, η οποία απαιτεί από τον χρήστη να επιλέξει το αναγνωριστικό χρήστη και να εισαγάγει τον κωδικό πρόσβασης για πρόσβαση στο απαιτούμενο φύλλο εργασίας.
Σε αυτό το άρθρο, θα σας δείξουμε πώς να δημιουργήσετε μια φόρμα χρήστη σύνδεσης χρησιμοποιώντας το excel VBA.
Πώς να δημιουργήσετε μια φόρμα χρήστη σύνδεσης;
Για παράδειγμα, ας υποθέσουμε ότι έχετε αριθμούς πωλήσεων ανά περιοχή σε διαφορετικά φύλλα εργασίας. Έχουμε 4 διαφορετικά ονόματα ζώνης και κάθε φύλλο εργασίας ζώνης έχει μόνο τα σχετικά δεδομένα. Τώρα η ιδέα είναι να δημιουργήσετε μια φόρμα σύνδεσης στην οποία ο επικεφαλής πωλήσεων ζώνης "Ανατολή" θα πρέπει να βλέπει μόνο δεδομένα ζώνης "Ανατολή", όχι άλλες ζώνες αλλά ως διαχειριστής, θα πρέπει να δείτε όλα τα φύλλα εργασίας των ζωνών.
Μπορείτε να κατεβάσετε αυτό το Πρότυπο σύνδεσης VBA Excel εδώ - Πρότυπο VBA Login ExcelΠρώτον, πρέπει να εισαγάγουμε ένα όνομα φύλλου που ονομάζεται "Διαχειριστής" Σε αυτό το φύλλο διαχειριστή, πρέπει να δημιουργήσουμε διαπιστευτήρια "Σύνδεση ταυτότητας" και "Κωδικός πρόσβασης".
Έχω ονομάσει τη ζώνη και τον κωδικό πρόσβασης με τον ίδιο τρόπο που μπορείτε να το αλλάξετε αργότερα. Για ονόματα ζωνών, έχω δημιουργήσει το εύρος ονομάτων ως "ZoneList". Αυτό το "Name Manager" θα χρησιμοποιηθεί αργότερα σε αυτήν τη φόρμα χρήστη σύνδεσης.
Όταν ο χρήστης ανοίγει το αρχείο θα πρέπει να δει ένα πλαστό φύλλο στο παρασκήνιο, οπότε δημιουργήστε ένα νέο φύλλο και ονομάστε το ως "Dummy" Sheet ".
Χρησιμοποιώντας αυτά τα φύλλα εργασίας θα δημιουργήσουμε μια φόρμα χρήστη σύνδεσης.
Βήμα 1: Εισαγωγή φόρμας χρήστη
Πατήστε το πλήκτρο ALT + F11 για να ανοίξετε το παράθυρο του VBA Editor.
- Από την καρτέλα "Εισαγωγή" εισάγετε "Φόρμα χρήστη".
- Αυτό θα δημιουργήσει μια νέα φόρμα χρήστη όπως η παρακάτω.
- Πατήστε το πλήκτρο F4 για να δείτε το παράθυρο Ιδιότητες, από αυτό το παράθυρο ιδιοτήτων αλλάξτε το όνομα της φόρμας χρήστη σε "LoginUF"
- Ομοίως, χρησιμοποιώντας αυτό το παράθυρο ιδιοτήτων μπορούμε να παίξουμε με τις ιδιότητες της φόρμας χρήστη. Έχω κάνει μερικές από τις αλλαγές ιδιοτήτων, μπορείτε να ανατρέξετε στο παρακάτω παράθυρο ιδιοτήτων για να εφαρμόσετε αλλαγές στις ιδιότητες της φόρμας χρήστη.
- Τώρα η φόρμα χρήστη μου μοιάζει με αυτό.
Βήμα 2: Σχεδιάστε τη μορφή χρήστη
- Από την εργαλειοθήκη της φόρμας χρήστη εισαγάγετε δύο κουτιά ετικετών και εισαγάγετε το κείμενο όπως φαίνεται παρακάτω.
- Από την εργαλειοθήκη εισάγετε "Combo Box".
- Για αυτό το combo box excel πρέπει να πάρουμε τα ονόματα ζώνης από το φύλλο εργασίας "Admin Sheet", οπότε από το παράθυρο ιδιοτήτων του "Combo Box" δώστε πρώτα ένα όνομα σε αυτό το σύνθετο πλαίσιο ως "Zone_List_ComboBox" κάτω από την ιδιότητα "Name".
- Από την ιδιότητα "Πηγή γραμμής" του συνδυαστικού πλαισίου εισαγάγετε το όνομα που δίνεται στη λίστα ζώνης στο "Φύλλο διαχειριστή"
- Τώρα το σύνθετο κουτί μας θα πρέπει να εμφανίζει ονόματα ζωνών στην αναπτυσσόμενη λίστα του στο excel.
- Για το "Enter You Password" πρέπει να εισαγάγουμε ένα "Text Box" από την εργαλειοθήκη.
- Για αυτό το "Text Box" πρέπει να αλλάξουμε την ιδιότητα "Name" και να την αλλάξουμε ως "Password_TB".
Τώρα στην κωδικοποίηση για τη φόρμα σύνδεσης VBA, το "Combo Box" θα αναφέρεται με το όνομα "Zone_List_ComboBox" και το "Text Box" θα αναφέρεται με το όνομα "Password_TB".
- Εισαγάγετε δύο "Κουμπιά εντολών" και εισαγάγετε το κείμενο ως "Σύνδεση" και "Αποσύνδεση".
Για το κουμπί εντολής "Σύνδεση" αλλάξτε την ιδιότητα ονόματος σε "Login_CommandButton" και για το κουμπί εντολής "Αποσύνδεση" αλλάξτε την ιδιότητα ονόματος σε "LogOut_CommandButton".
Βήμα 3: Κωδικός
Έχουμε τελειώσει με το τμήμα σχεδίασης φόρμας χρήστη σύνδεσης VBA, ήρθε η ώρα να γράψουμε τον κώδικα για να δημιουργήσουμε μια φόρμα χρήστη βάσει σύνδεσης στο excel VBA.
- Κάντε διπλό κλικ στο κουμπί "Σύνδεση", θα ανοίξει η κενή διαδικασία όπως η παρακάτω.
Μέσα σε αυτήν τη διαδικασία, πρέπει να γράψουμε τον κωδικό σχετικά με το τι πρέπει να συμβεί εάν πατηθεί το κουμπί "Σύνδεση".
Έχω ήδη γράψει τον κώδικα, μπορείτε να αντιγράψετε και να επικολλήσετε τον κώδικα από κάτω μέσα στην παραπάνω διαδικασία.
Κώδικας:
Private Sub Login_CommandButton_Click () If Zone_List_ComboBox.Value = "" Τότε MsgBox "Η ζώνη δεν μπορεί να είναι κενή !!!", vbInformation, "Zone Name" Exit Sub End if If Password_TB.Value = "" Στη συνέχεια, το MsgBox "Ο κωδικός πρόσβασης δεν μπορεί να είναι κενός !! ! ", vbInformation," Password "Exit Sub End If If Zone_List_ComboBox.Value =" Admin "And Password_TB.Value =" Admin "Στη συνέχεια, ξεφορτώστε μου Dim Ws ως φύλλο εργασίας για κάθε Ws στο ActiveWorkbook.Worksheets Ws.Visible = xlSheetVisible Next Ws Sheets ("Διαχειριστής"). Επιλέξτε 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 Εάν Password Password_TB.Value τότε MsgBox "Ο κωδικός πρόσβασης δεν ταιριάζει", vbInformation,"Λάθος κωδικός πρόσβασης" Έξοδος από το Sub End Εάν Εάν Password = Password_TB.Value τότε Unload Me Sheets (ZoneName) .Visible = True Sheets (ZoneName). Επιλέξτε ActiveSheet.Range ("A1"). Επιλέξτε End If End End End End
Ομοίως, κάντε διπλό κλικ στο κουμπί εντολής «Αποσύνδεση» και εισαγάγετε τον παρακάτω κωδικό.
Κώδικας:
Private Sub LogOut_CommandButton_Click () ThisWorkbook.Save ThisWorkbook.Close End Sub
Τώρα κάντε διπλό κλικ στο "Φόρμα χρήστη" (όχι σε κανένα από τα κουμπιά που έχουν εισαχθεί) και προσθέστε τον παρακάτω κωδικό.
Κώδικας:
Private Sub UserForm_QueryClose (Cancel as Integer, CloseMode As Integer) 'Αποτρέπει τη χρήση του κουμπιού Κλείσιμο Εάν CloseMode = vbFormControlMenu Στη συνέχεια MsgBox "Κάνοντας κλικ στο κουμπί Κλείσιμο δεν λειτουργεί." Ακύρωση = True End if End Sub
- Τώρα κάντε διπλό κλικ στο εικονίδιο "ThisWorkbook". Αυτό θα ανοίξει κάτω από το κενό πεδίο κώδικα.
Τώρα προσθέστε τον παρακάτω κώδικα σε αυτό το κενό πεδίο.
Κώδικας:
Private Sub Workbook_Open () Dim Ws As Application Sheet Work.DisplayAlerts = False Application.ScreenUpdating = False For Every Ws in ActiveWorkbook.Wheheets If Ws.Name "Dummy" Στη συνέχεια Ws.Visible = xlSheetVeryHidden End If Next Ws LogInUF. Show End Sub
- Τελειώσαμε με το κωδικοποιητικό μέρος της φόρμας. Αποθηκεύστε το βιβλίο εργασίας ως βιβλίο εργασίας "Macro-Enabled" και ανοίξτε ξανά το βιβλίο εργασίας. Με το άνοιγμα του βιβλίου εργασίας θα πρέπει να δούμε το παρακάτω παράθυρο.
- Από αυτήν τη φόρμα χρήστη, πρέπει να επιλέξουμε το αντίστοιχο όνομα ζώνης και να εισαγάγουμε τον σχετικό κωδικό πρόσβασης. Για παράδειγμα, θα επιλέξω τη ζώνη "Ανατολή" από το αναπτυσσόμενο μενού και θα εισαγάγω τον κωδικό πρόσβασης.
- Εάν κάνω κλικ στο "Σύνδεση", μπορούμε να δούμε μόνο το φύλλο εργασίας της ζώνης "Ανατολή".
Ομοίως, εάν συνδεθούμε με το "Διαχειριστής" μπορούμε να έχουμε πρόσβαση σε όλα τα φύλλα εργασίας.
Με αυτόν τον τρόπο, μπορούμε να δημιουργήσουμε πρόσβαση στο φύλλο εργασίας που προστατεύεται με κωδικό πρόσβασης με βάση τον κωδικό πρόσβασης.
Πράγματα που πρέπει να θυμάστε
- Πρέπει να χρησιμοποιήσετε τα ίδια ονόματα που έχουμε δώσει στη φόρμα χρήστη, το πλαίσιο κειμένου και το κουμπί εντολών και το σύνθετο πλαίσιο στην κωδικοποίηση.
- Μπορείτε να αλλάξετε το όνομα ζώνης και τον κωδικό πρόσβασης ανάλογα με την επιθυμία σας.