/ / / Excel VBA Userform με πολλαπλές σελίδες

Έντυπο χρήστη VBA Excel με πολλαπλές σελίδες

Παρακάτω θα δούμε ένα πρόγραμμα στο Excel VBA το οποίο δημιουργεί ένα Userform που περιέχει πολλές σελίδες. Αυτή η φόρμα χρήστη περιέχει επίσης εικόνες.

Ο έλεγχος πολλών σελίδων περιέχει δύο σελίδες. Στη σελίδα 1, ο χρήστης μπορεί να συμπληρώσει τα προσωπικά του στοιχεία. Στη σελίδα 2, ο χρήστης μπορεί να δείξει ποια ζωγραφική του αρέσει περισσότερο.

Μορφή χρήστη Page 1
Χρήση σελίδας 2

Για να δημιουργήσετε αυτό το Userform, εκτελέστε τα παρακάτω βήματα.

1. Ανοίξτε τον Επεξεργαστή Visual Basic. Εάν το Explorer του έργου δεν είναι ορατό, κάντε κλικ στην επιλογή Προβολή, Εξερεύνηση έργου.

2. Κάντε κλικ στην επιλογή Εισαγωγή, Χρήστης. Εάν η Εργαλειοθήκη δεν εμφανίζεται αυτόματα, κάντε κλικ στην επιλογή Προβολή, Εργαλειοθήκη. Η οθόνη σας πρέπει να ρυθμιστεί ως εξής.

Οθόνη ρύθμισης παραμέτρων χρήστη στο Excel VBA

3. Προσθέστε τον έλεγχο πολλαπλών σελίδων, τις ετικέτες, τα πλαίσια κειμένου (πρώτα στην κορυφή, το δεύτερο κάτω από το πρώτο), το πλαίσιο, τα κουμπιά επιλογών (πρώτα στα αριστερά, το δεύτερο στα δεξιά), το πλαίσιο λίστας, το κουμπί ελέγχου εικόνας και το κουμπί εντολής. Αφού ολοκληρωθεί αυτό το αποτέλεσμα, το αποτέλεσμα πρέπει να είναι συνεπές με την άδεια έκδοση του Userform που παρουσιάστηκε νωρίτερα. Για παράδειγμα, δημιουργήστε ένα στοιχείο ελέγχου πολλαπλών σελίδων κάνοντας κλικ στην επιλογή Πολλαπλή σελίδα από την Εργαλειοθήκη. Στη συνέχεια, μπορείτε να σύρετε ένα στοιχείο ελέγχου πολλών σελίδων στο Userform. Όταν φτάνετε στο πλαίσιο Φύλο, θυμηθείτε να σχεδιάσετε αυτό το πλαίσιο πρώτα πριν τοποθετήσετε τα δύο κουμπιά επιλογής σε αυτό.

4. Μπορείτε να αλλάξετε τα ονόματα και τις λεζάντες των στοιχείων ελέγχου. Τα ονόματα χρησιμοποιούνται στον κώδικα Excel VBA. Οι λεζάντες είναι αυτές που εμφανίζονται στην οθόνη σας. Είναι καλή πρακτική η αλλαγή των ονομάτων των στοιχείων ελέγχου, αλλά δεν είναι απαραίτητο εδώ επειδή έχουμε μόνο λίγα στοιχεία ελέγχου σε αυτό το παράδειγμα. Για να αλλάξετε τη λεζάντα των καρτελών Userform, Multipage, ετικετών, πλαισίου, κουμπιών επιλογών και κουμπιού εντολών, κάντε κλικ στην επιλογή Προβολή, Παράθυρο ιδιοτήτων και κάντε κλικ σε κάθε έλεγχο.

5. Για να εμφανίσετε το Userform, τοποθετήστε ένα κουμπί εντολής στο φύλλο εργασίας σας και προσθέστε την ακόλουθη γραμμή κώδικα:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Τώρα θα δημιουργήσουμε το Sub UserForm_Initialize. Όταν χρησιμοποιείτε τη μέθοδο εμφάνισης για τη φόρμα χρήστη, αυτό το υποσύνολο θα εκτελείται αυτόματα.

6. Ανοίξτε τον επεξεργαστή της Visual Basic.

7. Στην Εξερεύνηση έργου, κάντε δεξί κλικ στο UserForm1 και, στη συνέχεια, κάντε κλικ στην επιλογή Προβολή κωδικού.

8. Επιλέξτε Userform από την αριστερή αναπτυσσόμενη λίστα. Επιλέξτε Αρχικοποίηση από τη δεξιά αναπτυσσόμενη λίστα.

9. Προσθέστε τις ακόλουθες γραμμές κώδικα:

Private Sub UserForm_Initialize()

With ListBox1
    .AddItem "Mountains"
    .AddItem "Sunset"
    .AddItem "Beach"
    .AddItem "Winter"
End With

End Sub

Επεξήγηση: θα συμπληρωθεί το πλαίσιο λίστας στη σελίδα 2.

Δημιουργήσαμε τώρα το πρώτο μέρος του Userform. Παρόλο που φαίνεται ήδη καθαρό, δεν θα συμβεί τίποτα όταν επιλέγουμε ένα στοιχείο από το πλαίσιο λίστας ή όταν κάνουμε κλικ στο κουμπί OK.

10. Κατεβάστε τις εικόνες (δεξιά πλευρά αυτής της σελίδας) και προσθέστε τις στο "C: test"

11. Στην Εξερεύνηση έργου, κάντε διπλό κλικ στο UserForm1.

12. Κάντε διπλό κλικ στο πλαίσιο λίστας.

13. Προσθέστε τις ακόλουθες γραμμές κώδικα:

Private Sub ListBox1_Click()

If ListBox1.ListIndex = 0 Then
    Image1.Picture = LoadPicture("C:testMountains.jpg")
End If

If ListBox1.ListIndex = 1 Then
    Image1.Picture = LoadPicture("C:testSunset.jpg")
End If

If ListBox1.ListIndex = 2 Then
    Image1.Picture = LoadPicture("C:testBeach.jpg")
End If

If ListBox1.ListIndex = 3 Then
    Image1.Picture = LoadPicture("C:testWinter.jpg")
End If

End Sub

Επεξήγηση: Αυτές οι γραμμές κώδικα φορτώνουν μια εικόνα ανάλογα με το επιλεγμένο στοιχείο στο πλαίσιο λίστας.

14. Κάντε διπλό κλικ στο κουμπί OK.

15. Προσθέστε τις ακόλουθες γραμμές κώδικα:

Private Sub CommandButton1_Click()

Dim emptyRow As Long

"Make Sheet1 active
Sheet1.Activate

"Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1

"Transfer information
Cells(emptyRow, 1).Value = TextBox1.Value
Cells(emptyRow, 2).Value = TextBox2.Value

If OptionButton1.Value = True Then
    Cells(emptyRow, 3).Value = "Male"
Else
    Cells(emptyRow, 3).Value = "Female"
End If

Cells(emptyRow, 4).Value = ListBox1.Value

"Close Userform
Unload Me

End Sub

Επεξήγηση: Αρχικά, ενεργοποιούμε το φύλλο1. Στη συνέχεια, καθορίζουμε το emptyRow. Η μεταβλητή emptyRow είναι η πρώτη κενή γραμμή και αυξάνεται κάθε φορά που προστίθεται μια εγγραφή. Στη συνέχεια, μεταφέρουμε τις πληροφορίες από το Userform στις συγκεκριμένες στήλες του emptyRow. Τέλος, κλείνουμε το Userform.

16. Κλείστε τον Επεξεργαστή Visual Basic, εισαγάγετε τις ετικέτες που εμφανίζονται παρακάτω στη σειρά 1 και δοκιμάστε το Userform.

Αποτέλεσμα:

Δοκιμάστε το Userform

Επίσης διαβάστε: