/ / Formatul de utilizare Excel VBA cu pagini multiple

Formatul de utilizare Excel VBA cu pagini multiple

Mai jos ne vom uita la un program din Excel VBA care creează o Userform care conține mai multe pagini. Acest format de utilizator conține și imagini.

Controlul cu mai multe pagini conține două pagini. La pagina 1, utilizatorul își poate completa informațiile personale. La pagina 2, utilizatorul poate indica ce pictură îi place cel mai mult.

Formular de utilizator Pagina 1
Formatul de utilizator Pagina 2

Pentru a crea această formă de utilizator, executați următorii pași.

1. Deschideți Editorul Visual Basic. Dacă Project Explorer nu este vizibil, faceți clic pe Vizualizare, Project Explorer.

2. Faceți clic pe Inserare, Formă utilizator. Dacă Toolbox-ul nu apare automat, faceți clic pe View (Vizualizare), Toolbox (Instrumente). Ecranul dvs. trebuie să fie configurat ca mai jos.

Setarea ecranului utilizatorului în Excel VBA

3. Adăugați controlul, etichetele, casetele de text (mai întâi în partea de sus, cel de-al doilea sub primul), rama, butoanele de opțiuni (mai întâi la stânga, a doua în partea dreaptă), caseta listă, butonul de comandă imagine și butonul de comandă. Odată terminată, rezultatul trebuie să fie în concordanță cu versiunea goală a formularului de utilizator afișat mai devreme. De exemplu, creați un control în mai multe pagini făcând clic pe Multipage din caseta de instrumente. Apoi, puteți glisa un control Multipage pe Userform. Când ajungeți la cadrul de gen, nu uitați să desenați acest cadru înainte de a plasa cele două butoane de opțiuni din acesta.

4. Puteți modifica numele și subtitrarea comenzilor. Numele sunt utilizate în codul Excel VBA. Titlurile sunt cele care apar pe ecran. Este o practică bună schimbarea numelor comenzilor, dar nu este necesară aici, deoarece avem doar câteva controale în acest exemplu. Pentru a modifica subtitlul Userform, tab-uri, etichete, cadru, butoane de opțiuni și buton de comandă, faceți clic pe Vizualizare, pe fereastra de proprietăți și faceți clic pe fiecare element de control.

5. Pentru a afișa Userform, plasați un buton de comandă pe foaia de lucru și adăugați următoarea linie de cod:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Acum vom crea Sub UserForm_Initialize. Când utilizați metoda de afișare pentru formularul de utilizator, această secțiune va fi executată automat.

6. Deschideți Editorul Visual Basic.

7. În Project Explorer, faceți clic dreapta pe UserForm1 și apoi faceți clic pe View Code (Vizualizare cod).

8. Selectați Format utilizator din lista verticală stânga. Selectați Inițializare din lista derulantă din dreapta.

9. Adăugați următoarele linii de cod:

Private Sub UserForm_Initialize()

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

End Sub

Explicație: caseta listă de la pagina 2 va fi completă.

Am creat acum prima parte a Userform. Deși arată deja bine, nimic nu se va întâmpla încă atunci când selectăm un element din caseta listă sau când dăm clic pe butonul OK.

10. Descărcați imaginile (în partea dreaptă a acestei pagini) și adăugați-le la "C: test"

11. În Project Explorer, faceți dublu clic pe UserForm1.

12. Faceți dublu clic pe caseta listă.

13. Adăugați următoarele linii de cod:

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

Explicație: aceste linii de cod incarca o imagine în funcție de elementul selectat din caseta listă.

14. Faceți dublu clic pe butonul OK.

15. Adăugați următoarele linii de cod:

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

Explicație: mai întâi, activăm Sheet1. Apoi, vom determina emptyRow. Variabila emptyRow este primul rând gol și crește de fiecare dată când este adăugată o înregistrare. Apoi, transferăm informațiile din Formularul utilizatorului în coloanele specifice ale câmpului emptyRow. În cele din urmă, închidem Userform.

16. Ieșiți din Editorul Visual Basic, introduceți etichetele de mai jos în rândul 1 și testați Userform.

Rezultat:

Testați Formatul de utilizare

De asemenea, citiți: