/ / Bucle prin comenzi în Excel VBA

Bucle prin controale în Excel VBA

Cu doar câteva linii de cod, putem ușor buclă prin controale pe o Excel VBA Userform. Formularul de utilizator pe care îl vom crea arată după cum urmează:

Bucle prin controale î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 etichetele, casetele de selectare (mai întâi în partea de sus, a doua sub prima și așa mai departe) ș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 casetei de control făcând clic pe butonul CheckBox din caseta de instrumente. Apoi, puteți glisa o casetă de selectare 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 titlul caseta de selectare Userform, etichetă, casete de selectare și buton de comandă, faceți clic pe Vizualizare, fereastra de proprietăți și faceți clic pe fiecare comandă.

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

Am creat acum prima parte a Userform. Deși arată deja bine, nu se va mai întâmpla nimic când faceți clic pe butonul Șterge.

6. Deschideți Editorul Visual Basic.

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

8. Faceți dublu clic pe butonul Ștergere.

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

Private Sub CommandButton1_Click()

Dim contr As control

For Each contr In UserForm1.Controls
    If TypeName(contr) = "CheckBox" Then
        contr.Value = False
    End If
Next

End Sub

Explicaţie: Excel VBA buclele prin toate controalele de pe Userform. Funcția TypeName este utilizată pentru filtrarea controalelor casetei de control. În cazul în care un control caseta de control, Excel VBA deblochează caseta de selectare. contr este ales aleator aici, puteți folosi orice nume. Nu uitați să vă referiți la acest nume în restul codului.

Rezultat când faceți clic pe butonul Ștergere:

Bucle prin rezultatele de control

De asemenea, citiți: