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.

  1. Crear un UserForm

Passos per crear un UserForm

  1. Obrir l'Editor de VBA:

    • Premeu Alt + F11 per obrir l'Editor de VBA.
  2. Afegir un nou UserForm:

    • Aneu a Insert > UserForm. Apareixerà un nou formulari en blanc.
  3. Canviar el nom del UserForm:

    • A la finestra de propietats, canvieu la propietat Name a frmEntradaDades.

Exemple de codi

' Aquest codi s'executa quan es carrega el formulari
Private Sub UserForm_Initialize()
    ' Inicialitzar el formulari aquí
End Sub

  1. 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

  1. Afegir una etiqueta:

    • Seleccioneu l'eina Label a la caixa d'eines i dibuixeu-la al formulari.
    • Canvieu la propietat Caption a Nom:.
  2. Afegir una caixa de text:

    • Seleccioneu l'eina TextBox i dibuixeu-la al formulari.
    • Canvieu la propietat Name a txtNom.
  3. Afegir un botó:

    • Seleccioneu l'eina CommandButton i dibuixeu-lo al formulari.
    • Canvieu la propietat Caption a Enviar.
    • Canvieu la propietat Name a btnEnviar.

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

  1. Emmagatzemar les dades en un full de càlcul

Passos per emmagatzemar dades

  1. Obrir el full de càlcul:

    • Assegureu-vos que teniu un full de càlcul obert on voleu emmagatzemar les dades.
  2. 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.

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

  1. 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.
  2. 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.

© Copyright 2024. Tots els drets reservats