En aquest tema, aprendrem a crear un formulari d'entrada de dades utilitzant VBA. Els formularis d'entrada de dades són eines molt útils per recollir informació de manera estructurada i eficient. A través d'aquest mòdul, veurem com dissenyar un formulari, afegir controls, escriure codi per gestionar els esdeveniments i finalment, com emmagatzemar les dades recollides en un full de càlcul d'Excel.
Objectius d'aprenentatge
- Comprendre com crear un UserForm en VBA.
- Aprendre a afegir i configurar controls en un UserForm.
- Escriure codi VBA per gestionar esdeveniments dels controls.
- Emmagatzemar les dades recollides en un full de càlcul d'Excel.
- Crear un UserForm
Passos per crear un UserForm
-
Obrir l'Editor de VBA:
- Premeu
Alt + F11
per obrir l'Editor de VBA.
- Premeu
-
Afegir un nou UserForm:
- Aneu a
Insert
>UserForm
. Apareixerà un nou formulari en blanc.
- Aneu a
-
Canviar el nom del UserForm:
- A la finestra de propietats, canvieu la propietat
Name
afrmEntradaDades
.
- A la finestra de propietats, canvieu la propietat
Exemple de codi
' Aquest codi s'executa quan es carrega el formulari Private Sub UserForm_Initialize() ' Inicialitzar el formulari aquí End Sub
- Afegir i configurar controls
Controls bàsics
- Etiquetes (Label): Per mostrar text descriptiu.
- Caixes de text (TextBox): Per permetre l'entrada de text.
- Botons (CommandButton): Per executar accions quan es fa clic.
Afegir controls al UserForm
-
Afegir una etiqueta:
- Seleccioneu l'eina
Label
a la caixa d'eines i dibuixeu-la al formulari. - Canvieu la propietat
Caption
aNom:
.
- Seleccioneu l'eina
-
Afegir una caixa de text:
- Seleccioneu l'eina
TextBox
i dibuixeu-la al formulari. - Canvieu la propietat
Name
atxtNom
.
- Seleccioneu l'eina
-
Afegir un botó:
- Seleccioneu l'eina
CommandButton
i dibuixeu-lo al formulari. - Canvieu la propietat
Caption
aEnviar
. - Canvieu la propietat
Name
abtnEnviar
.
- Seleccioneu l'eina
Exemple de codi
' Aquest codi s'executa quan es fa clic al botó Enviar Private Sub btnEnviar_Click() Dim nom As String nom = txtNom.Text ' Aquí podeu afegir codi per processar el nom MsgBox "Nom introduït: " & nom End Sub
- Emmagatzemar les dades en un full de càlcul
Passos per emmagatzemar dades
-
Obrir el full de càlcul:
- Assegureu-vos que teniu un full de càlcul obert on voleu emmagatzemar les dades.
-
Escriure el codi per emmagatzemar les dades:
- Afegiu el codi al botó
Enviar
per emmagatzemar les dades en una cel·la del full de càlcul.
- Afegiu el codi al botó
Exemple de codi
Private Sub btnEnviar_Click() Dim nom As String nom = txtNom.Text ' Trobar la primera fila buida Dim ultimaFila As Long ultimaFila = Sheets("Dades").Cells(Rows.Count, 1).End(xlUp).Row + 1 ' Emmagatzemar el nom a la primera columna de la primera fila buida Sheets("Dades").Cells(ultimaFila, 1).Value = nom ' Notificar a l'usuari MsgBox "Dades emmagatzemades correctament!" ' Netejar el camp de text txtNom.Text = "" End Sub
Exercici pràctic
Objectiu
Crear un formulari d'entrada de dades que reculli el nom, l'edat i el correu electrònic d'una persona i emmagatzemi aquesta informació en un full de càlcul d'Excel.
Passos
-
Crear un UserForm amb els següents controls:
- Etiquetes i caixes de text per al nom, l'edat i el correu electrònic.
- Un botó
Enviar
.
-
Escriure el codi per emmagatzemar les dades:
- Emmagatzemar les dades en les columnes corresponents del full de càlcul.
Solució
Private Sub btnEnviar_Click() Dim nom As String, edat As Integer, correu As String nom = txtNom.Text edat = CInt(txtEdat.Text) correu = txtCorreu.Text ' Trobar la primera fila buida Dim ultimaFila As Long ultimaFila = Sheets("Dades").Cells(Rows.Count, 1).End(xlUp).Row + 1 ' Emmagatzemar les dades With Sheets("Dades") .Cells(ultimaFila, 1).Value = nom .Cells(ultimaFila, 2).Value = edat .Cells(ultimaFila, 3).Value = correu End With ' Notificar a l'usuari MsgBox "Dades emmagatzemades correctament!" ' Netejar els camps de text txtNom.Text = "" txtEdat.Text = "" txtCorreu.Text = "" End Sub
Conclusió
En aquest tema, hem après a crear un formulari d'entrada de dades utilitzant VBA. Hem vist com afegir i configurar controls en un UserForm, escriure codi per gestionar esdeveniments i emmagatzemar les dades recollides en un full de càlcul d'Excel. Aquestes habilitats són fonamentals per crear aplicacions d'Excel més interactives i eficients. En el proper tema, explorarem com desenvolupar un quadre de comandament amb VBA.
Curs de VBA (Visual Basic for Applications)
Mòdul 1: Introducció a VBA
Mòdul 2: Conceptes bàsics de VBA
- Variables i tipus de dades
- Operadors en VBA
- Estructures de control: If...Then...Else
- Bucles: For, While, Do Until
- Treballar amb arrays
Mòdul 3: Treballar amb objectes d'Excel
- Comprendre el model d'objectes d'Excel
- Treballar amb llibres i fulls de càlcul
- Manipulació de cel·les i rangs
- Utilitzar l'objecte Range
- Formatar cel·les amb VBA
Mòdul 4: Programació avançada en VBA
- Crear i utilitzar funcions
- Gestió d'errors en VBA
- Tècniques de depuració
- Treballar amb UserForms
- Programació basada en esdeveniments
Mòdul 5: Interactuar amb altres aplicacions
- Automatitzar Word amb VBA
- Automatitzar Outlook amb VBA
- Accedir a bases de dades amb VBA
- Utilitzar VBA per controlar PowerPoint
Mòdul 6: Millors pràctiques i optimització
- Escriure codi VBA eficient
- Tècniques de refactorització de codi
- Documentar el teu codi
- Control de versions per a projectes VBA