Cubrindo os formularios cos datos da táboa

Formulación do problema

Temos unha base de datos (lista, táboa, chámalle como queiras) con información sobre os pagamentos nunha folla Data:

Tarefa: imprime rapidamente un recibo de efectivo (pago, factura...) para calquera entrada desexada seleccionada desta lista. Vaia!

Paso 1. Crea un formulario

Noutra folla do libro (chamemos esta folla Forma) crea un formulario baleiro. Podes facelo ti mesmo, podes usar formularios preparados, tomados, por exemplo, dos sitios web da revista Chief Accountant ou do sitio web de Microsoft. Teño algo así:

Cubrindo os formularios cos datos da táboa

Nas celas baleiras (Conta, Importe, Recibido de etc.) obterá datos da táboa de pagos doutra folla; un pouco máis tarde tratarémolo.

Paso 2: Elaboración da táboa de pagamentos

Antes de tomar datos da táboa para o noso formulario, a táboa debe ser lixeiramente modernizada. É dicir, inserir unha columna baleira á esquerda da táboa. Usaremos para introducir unha etiqueta (que sexa a letra inglesa “x”) fronte á liña desde a que queremos engadir datos ao formulario:

Paso 3. Vincular a táboa e o formulario

Para a comunicación, usamos a función VPR(BÚSQUEDA V) - Podes ler máis sobre iso aquí. No noso caso, para inserir o número do pago marcado con "x" da folla de datos na cela F9 do formulario, debes introducir a seguinte fórmula na cela F9:

=BUSCARV(“x”,Datos!A2:G16)

=BUSCARV(“x”;Datos!B2:G16;2;0)

Eses. traducida a “comprensible”, a función debería atopar no rango A2: G16 na Ficha de datos unha liña que comeza co carácter “x” e darnos o contido da segunda columna desta liña, é dicir, o número de pago.

Todas as outras celas do formulario enchen do mesmo xeito: só o número de columna cambia na fórmula.

Para mostrar a cantidade en palabras, usei a función Propio do complemento PLEX.

O resultado debe ser o seguinte:

Cubrindo os formularios cos datos da táboa

Paso 4. Para que non haxa dúas "x"...

Se o usuario introduce "x" en varias liñas, a función BUSCAR V só tomará o primeiro valor que atope. Para evitar tal ambigüidade, fai clic co botón dereito do rato na pestana da folla Data e despois Texto de orixe (Código fonte). Na xanela do editor de Visual Basic que aparece, copie o seguinte código:

Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Long Dim str As String If Target.Count > 1 Then Exit Sub If Target.Column = 1 Then str = Target.Value Application.EnableEvents = False r = Cells(Rows.Count , 2).End(xlUp).Row Range("A2:A" & r).ClearContents Target.Value = str End If Application.EnableEvents = True End Sub  

Esta macro impide que o usuario introduza máis dunha "x" na primeira columna.

Ben, iso é todo! Disfruta!

  • Usando a función BUSCARV para substituír valores
  • Unha versión mellorada da función BUSCAR V
  • Cantidade en palabras (función Propis) do complemento PLEX

 

Deixe unha resposta