/ / Excel VBA-gebruikersformulier met meerdere pagina's

Excel VBA-gebruikersformulier met meerdere pagina's

Hieronder zullen we een programma in Excel VBA bekijken dat een gebruikersformulier creëert dat meerdere pagina's bevat. Dit gebruikersformulier bevat ook afbeeldingen.

De bediening van meerdere pagina's bevat twee pagina's. Op pagina 1 kan de gebruiker zijn / haar persoonlijke gegevens invullen. Op pagina 2 kan de gebruiker aangeven welk schilderij hij / zij het leukst vindt.

Gebruikersformulier Pagina 1
Gebruikersformulier Pagina 2

Om dit gebruikersformulier aan te maken, voert u de volgende stappen uit.

1. Open de Visual Basic-editor. Als de Projectverkenner niet zichtbaar is, klikt u op Beeld, Projectverkenner.

2. Klik op Invoegen, Gebruikersformulier. Als de Toolbox niet automatisch verschijnt, klikt u op Beeld, Werkset. Uw scherm moet worden ingesteld zoals hieronder.

Gebruikersformulier Scherminstellingen in Excel VBA

3. Voeg het besturingselement Multipage, labels, tekstvakken (eerst bovenaan, de tweede onder de eerste), frame, optieknoppen (eerst links, de tweede rechts), keuzelijst, Afbeeldingsbeheer en opdrachtknop toe. Zodra dit is voltooid, moet het resultaat consistent zijn met de lege versie van het eerder weergegeven Gebruikersformulier. Maak bijvoorbeeld een besturingselement voor meerdere pagina's door in de werkset op Multipage te klikken. Vervolgens kunt u een multipage-besturingselement slepen op het gebruikersformulier. Wanneer u bij het Geslacht-kader arriveert, moet u dit kader eerst tekenen voordat u de twee optieknoppen erin plaatst.

4. U kunt de namen en bijschriften van de bedieningselementen wijzigen. Namen worden gebruikt in de Excel VBA-code. Onderschriften zijn diegene die op je scherm verschijnen. Het is een goede gewoonte om de namen van de besturingselementen te wijzigen, maar dit is hier niet nodig, omdat we in dit voorbeeld slechts enkele besturingselementen gebruiken. Als u het bijschrift van het gebruikersformulier, de tabbladen Multipage, Labels, Frame, Optieknoppen en de opdrachtknop wilt wijzigen, klikt u op Beeld, Venster Eigenschappen en klikt u op elk besturingselement.

5. Om het gebruikersformulier weer te geven, plaatst u een opdrachtknop op uw werkblad en voegt u de volgende coderegel toe:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

We gaan nu de Sub UserForm_Initialize maken. Wanneer u de methode Show voor het Userform gebruikt, wordt deze sub automatisch uitgevoerd.

6. Open de Visual Basic-editor.

7. Klik in de projectverkenner met de rechtermuisknop op UserForm1 en klik vervolgens op Code weergeven.

8. Kies Userform in de linker vervolgkeuzelijst. Kies Initialiseren in de vervolgkeuzelijst.

9. Voeg de volgende coderegels toe:

Private Sub UserForm_Initialize()

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

End Sub

Uitleg: de keuzelijst op pagina 2 wordt gevuld.

We hebben nu het eerste deel van het gebruikersformulier gemaakt. Hoewel het er al goed uitziet, gebeurt er nog niets wanneer we een item uit de keuzelijst selecteren of wanneer we op de knop OK klikken.

10. Download de afbeeldingen (rechterkant van deze pagina) en voeg ze toe aan "C: test"

11. Dubbelklik in de Projectverkenner op UserForm1.

12. Dubbelklik op de keuzelijst.

13. Voeg de volgende coderegels toe:

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

Uitleg: deze codelijnen laden een afbeelding afhankelijk van het geselecteerde item in de keuzelijst.

14. Dubbelklik op de knop OK.

15. Voeg de volgende coderegels toe:

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

Uitleg: eerst activeren we Blad1. Vervolgens bepalen we emptyRow. De variabele emptyRow is de eerste lege rij en neemt toe telkens wanneer een record wordt toegevoegd. Vervolgens verplaatsen we de informatie van het gebruikersformulier naar de specifieke kolommen van emptyRow. Ten slotte sluiten we het gebruikersformulier.

16. Sluit de Visual Basic-editor, voer de onderstaande labels in rij 1 in en test het gebruikersformulier.

Resultaat:

Test het gebruikersformulier

Lees ook: