Caselle combinate dipendenti da VBA di Excel - Macro semplici di Excel

Sommario

Di seguito vedremo un programma in Excel VBA che crea un form utente che contiene caselle combinate dipendenti. Il form utente che creeremo appare come segue:

L'utente seleziona Animali da un elenco a discesa. Di conseguenza, l'utente può selezionare un animale da un secondo elenco a discesa.

L'utente seleziona Sport da un elenco a discesa. Di conseguenza, l'utente può selezionare uno sport da un secondo elenco a discesa.

Per creare questo modulo utente, eseguire i seguenti passaggi.

1. Aprire l'editor di Visual Basic. Se l'Esplora progetti non è visibile, fare clic su Visualizza, Esplora progetti.

2. Fare clic su Inserisci, Modulo utente. Se la Casella degli strumenti non viene visualizzata automaticamente, fare clic su Visualizza, Casella degli strumenti. Lo schermo dovrebbe essere impostato come di seguito.

3. Aggiungere le caselle combinate (la prima a sinistra, la seconda a destra) e il pulsante di comando. Una volta che questo è stato completato, il risultato dovrebbe essere coerente con l'immagine del modulo utente mostrato in precedenza. Ad esempio, creare un controllo casella combinata facendo clic su ComboBox dalla casella degli strumenti. Successivamente, puoi trascinare una casella combinata sul form utente.

4. È possibile modificare i nomi e le didascalie dei controlli. I nomi vengono utilizzati nel codice VBA di Excel. Le didascalie sono quelle che appaiono sullo schermo. È buona norma cambiare i nomi dei controlli, ma non è necessario qui perché in questo esempio abbiamo solo pochi controlli. Per modificare la didascalia del modulo utente e del pulsante di comando, fare clic su Visualizza, Finestra delle proprietà e fare clic su ciascun controllo.

5. Per mostrare il form utente, posiziona un pulsante di comando sul foglio di lavoro e aggiungi la seguente riga di codice:

Sub CommandButton1_Click privato ()
UserForm1.Show
Fine sottotitolo

Ora creeremo il Sub UserForm_Initialize. Quando si utilizza il metodo Show per il form utente, questo sottotitolo verrà eseguito automaticamente.

6. Aprire l'editor di Visual Basic.

7. In Esplora progetti, fare clic con il pulsante destro del mouse su UserForm1 e quindi fare clic su Visualizza codice.

8. Scegliere Modulo utente dall'elenco a discesa a sinistra. Scegli Inizializza dall'elenco a discesa a destra.

9. Aggiungi le seguenti righe di codice:

Private Sub UserForm_Initialize()
Con ComboBox1
.AddItem "Animali"
.AddItem "Sport"
.Aggiungi voce "Cibo"
Termina con
Fine sottotitolo

Spiegazione: Queste righe di codice riempiono la prima casella combinata.

Ora abbiamo creato la prima parte dell'Userform. Sebbene sembri già pulito, non accadrà ancora nulla quando selezioniamo un elemento dalla prima casella combinata.

10. Nell'Esplora progetti, fare doppio clic su UserForm1.

11. Fare doppio clic sulla prima casella combinata.

12. Aggiungi le seguenti righe di codice:

Sub ComboBox1_Change privato ()
Indice dim come intero
indice = ComboBox1.ListIndex
ComboBox2.Clear
Seleziona l'indice del caso
Il caso è = 0
Con ComboBox2
.AddItem "Cane"
.AddItem "Gatto"
.AddItem "Cavallo"
Termina con
Il caso è = 1
Con ComboBox2
.AddItem "Tennis"
.AddItem "Nuoto"
.AddItem "Pallacanestro"
Termina con
Il caso è = 2
Con ComboBox2
.AddItem "Pancake"
.AddItem "Pizza"
.AddItem "Cinese"
Termina con
Fine selezione
Fine sottotitolo

Spiegazione: Excel VBA utilizza il valore dell'indice variabile per testare ogni istruzione Case successiva per vedere con quali elementi deve essere riempita la seconda casella combinata. Passa attraverso il nostro programma Select Case per saperne di più sulla struttura Select Case.

13. Fare doppio clic sul pulsante Importa.

14. Aggiungi la seguente riga di codice:

Sub CommandButton1_Click privato ()
Range("A1").Value = ComboBox2.Value
Fine sottotitolo

Risultato:

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave