Modulo utente VBA di Excel con più pagine - Macro semplici di Excel

Sommario

Di seguito vedremo un programma in Excel VBA che crea un modulo utente che contiene più pagine. Questo modulo utente contiene anche immagini.

Il controllo multipagina contiene due pagine. A pagina 1, l'utente può inserire i propri dati personali. A pagina 2, l'utente può indicare quale dipinto gli piace di più.

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. Aggiungi il controllo multipagina, etichette, caselle di testo (il primo in alto, il secondo sotto il primo), cornice, pulsanti di opzione (il primo a sinistra, il secondo a destra), casella di riepilogo, controllo immagine e pulsante di comando. Una volta completato, il risultato dovrebbe essere coerente con la versione vuota del modulo utente mostrata in precedenza. Ad esempio, creare un controllo Multipagina facendo clic su Multipagina dalla Casella degli strumenti. Successivamente, puoi trascinare un controllo multipagina sul form utente. Quando arrivi al riquadro Genere, ricorda di disegnare questo riquadro prima di posizionare i due pulsanti di opzione al suo interno.

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 di Userform, Schede multipagina, etichette, cornice, pulsanti di opzione e pulsante di comando, fare clic su Visualizza, Finestra 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 ListBox1
.AddItem "Montagne"
.AddItem "Tramonto"
.AddItem "Spiaggia"
.AddItem "Inverno"
Termina con
Fine sottotitolo

Spiegazione: la casella di riepilogo a pagina 2 verrà riempita.

Ora abbiamo creato la prima parte dell'Userform. Sebbene sembri già pulito, non succederà ancora nulla quando selezioniamo un elemento dalla casella di riepilogo o quando facciamo clic sul pulsante OK.

10. Scarica le immagini (lato destro di questa pagina) e aggiungile a "C:\test\"

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

12. Fare doppio clic sulla casella di riepilogo.

13. Aggiungi le seguenti righe di codice:

ListBox Sub Privato1_Click()
Se ListBox1.ListIndex = 0 Allora
Immagine1.Picture = LoadPicture("C:\test\Mountains.jpg")
Finisci se
Se ListBox1.ListIndex = 1 Allora
Immagine1.Picture = LoadPicture("C:\test\Sunset.jpg")
Finisci se
Se ListBox1.ListIndex = 2 Allora
Immagine1.Picture = LoadPicture("C:\test\Beach.jpg")
Finisci se
Se ListBox1.ListIndex = 3 Allora
Immagine1.Picture = LoadPicture("C:\test\Winter.jpg")
Finisci se
Fine sottotitolo

Spiegazione: queste righe di codice caricano un'immagine a seconda dell'elemento selezionato nella casella di riepilogo.

14. Fare doppio clic sul pulsante OK.

15. Aggiungi le seguenti righe di codice:

Sub CommandButton1_Click privato ()
Oscura riga vuota quanto più lunga
'Rendi Foglio1 attivo
Foglio1.Attiva
'Determina riga vuota
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
"Informazioni sul trasferimento"
Cells(emptyRow, 1).Value = TextBox1.Value
Cells(emptyRow, 2).Value = TextBox2.Value
Se OptionButton1.Value = True allora
Cells(emptyRow, 3).Value = "Maschio"
Altro
Cells(emptyRow, 3).Value = "Femmina"
Finisci se
Cells(emptyRow, 4).Value = ListBox1.Value
"Chiudi modulo utente"
Scaricami
Fine sottotitolo

Spiegazione: prima attiviamo Sheet1. Successivamente, determiniamo emptyRow. La variabile emptyRow è la prima riga vuota e aumenta ogni volta che viene aggiunto un record. Successivamente, trasferiamo le informazioni dall'Userform alle colonne specifiche di emptyRow. Infine, chiudiamo il form utente.

16. Uscire dall'editor di Visual Basic, immettere le etichette mostrate di seguito nella riga 1 e verificare il form utente.

Risultato:

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

wave wave wave wave wave