/ / Excel VBA Userform med flera sidor

Excel VBA Userform med flera sidor

Nedan ser vi på ett program i Excel VBA som skapar en användarform som innehåller flera sidor. Denna användarform innehåller också bilder.

Multipakontrollen innehåller två sidor. På sidan 1 kan användaren fylla i sin personliga information. På sidan 2 kan användaren ange vilken målning han / hon gillar mest.

Användarform Sida 1
Userform Page 2

För att skapa detta användarformulär, utför följande steg.

1. Öppna Visual Basic Editor. Om Project Explorer inte är synligt klickar du på Visa, Project Explorer.

2. Klicka på Insert, Userform. Om Verktygslådan inte visas automatiskt klickar du på Visa, Verktygslåda. Din skärm bör ställas in enligt nedan.

Userform Screen Setup i Excel VBA

3. Lägg till flerkontrollen, etiketterna, textrutorna (först överst, den andra under den första), rammen, alternativknapparna (först till vänster, den andra till höger), listrutan, bildkontroll och kommandoknapp. När det här är klart ska resultatet vara förenligt med den tomma versionen av användarformen som visats tidigare. Skapa till exempel en Multipage-kontroll genom att klicka på Multipage från Verktygslådan. Därefter kan du dra en Multipage-kontroll på användarformuläret. När du kommer till könramen, kom ihåg att dra denna ram först innan du placerar de två alternativknapparna i den.

4. Du kan ändra namn och bildtexter på kontrollerna. Namnen används i Excel VBA-koden. Bildtext är de som visas på din skärm. Det är bra att ändra namnen på kontrollerna, men det är inte nödvändigt här eftersom vi bara har några kontroller i det här exemplet. För att ändra bildtexten i fliken Användarform, Flera flikar, etiketter, ram, alternativknappar och kommandoknapp, klicka på Visa, Egenskaperfönster och klicka på varje kontroll.

5. För att visa användarformen, placera en kommandoknapp på ditt arbetsblad och lägg till följande kodrad:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Vi ska nu skapa Sub UserForm_Initialize. När du använder Visa-metoden för användarformuläret utförs denna del automatiskt.

6. Öppna Visual Basic Editor.

7. I Project Explorer högerklickar du på UserForm1 och klickar sedan på Visa kod.

8. Välj Användarformulär i den nedrullningsbara listrutan. Välj Initialize från den högra rullgardinsmenyn.

9. Lägg till följande kodlinjer:

Private Sub UserForm_Initialize()

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

End Sub

Förklaring: listrutan på sidan 2 fylls i.

Vi har nu skapat den första delen av Userform. Även om det ser snyggt ut, kommer ingenting att hända ännu när vi väljer ett objekt från listrutan eller när vi klickar på OK-knappen.

10. Ladda ner bilderna (höger sida av den här sidan) och lägg till dem till "C: test"

11. Dubbelklicka på UserForm1 i Project Explorer.

12. Dubbelklicka på listrutan.

13. Lägg till följande kodlinjer:

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

Förklaring: Dessa kodlinjer laddar upp en bild beroende på det valda objektet i listrutan.

14. Dubbelklicka på OK-knappen.

15. Lägg till följande kodlinjer:

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

Förklaring: Först aktiverar vi Sheet1. Därefter bestämmer vi emptyRow. Variabeln emptyRow är den första tomma raden och ökar varje gång en post läggs till. Därefter överför vi informationen från användarformen till de specifika kolumnerna i emptyRow. Slutligen stänger vi användarformuläret.

16. Avsluta Visual Basic Editor, skriv in etiketterna nedan till rad 1 och testa användarformuläret.

Resultat:

Testa användarformuläret

Läs också: