/ / Cutii combo dependente de VBA Excel

Excel VBA Dependent Boxes Combo

Mai jos ne vom uita la un program în Excel VBA care creează o Userform care conține dependente cutie combo. Formularul de utilizator pe care îl vom crea arată după cum urmează:

Utilizatorul selectează Animale dintr-o listă derulantă. Ca urmare, utilizatorul poate selecta un animal dintr-o a doua listă derulantă.

Dulapuri combinate dependente în Excel VBA

Utilizatorul selectează Sport dintr-o listă derulantă. Ca urmare, utilizatorul poate selecta un sport dintr-o a doua listă derulantă.

Dulapuri combinate dependente în Excel VBA

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 casetele combo (mai întâi la stânga, a doua la dreapta) și butonul de comandă. Odată terminată, rezultatul ar trebui să fie în concordanță cu imaginea formularului de utilizator afișat mai devreme. De exemplu, creați un control al cutiei combo făcând clic pe ComboBox din caseta de instrumente. Apoi, puteți trage o casetă combo pe Userform.

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 legenda butonului Userform și a comenzii, faceți clic pe Vizualizare, 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 ComboBox1
    .AddItem "Animals"
    .AddItem "Sports"
    .AddItem "Food"
End With

End Sub

Explicație: Aceste linii de coduri umple prima casetă combo.

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 prima casetă combo.

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

11. Faceți dublu clic pe prima casetă combo.

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

Private Sub ComboBox1_Change()

Dim index As Integer
index = ComboBox1.ListIndex

ComboBox2.Clear

Select Case index
    Case Is = 0
        With ComboBox2
            .AddItem "Dog"
            .AddItem "Cat"
            .AddItem "Horse"
        End With
    Case Is = 1
        With ComboBox2
            .AddItem "Tennis"
            .AddItem "Swimming"
            .AddItem "Basketball"
        End With
    Case Is = 2
        With ComboBox2
            .AddItem "Pancakes"
            .AddItem "Pizza"
            .AddItem "Chinese"
        End With
End Select

End Sub

Explicaţie: Excel VBA utilizează valoarea indexului variabil pentru a testa fiecare declarație de caz ulterioară pentru a vedea cu care elemente se completează cea de-a doua cutie combo. Treceți prin programul Select Case pentru a afla mai multe despre structura Select Case.

13. Faceți dublu clic pe butonul Import.

14. Adăugați următoarea linie de cod:

Private Sub CommandButton1_Click()

Range("A1").Value = ComboBox2.Value

End Sub

Rezultat:

Dulapuri combinate dependente în Excel VBA

De asemenea, citiți: