Rellenar los formularios con los datos de la tabla

Formulación del problema

Tenemos una base de datos (lista, tabla, llámela como quiera) con información sobre pagos en una hoja Datos:

Tarea: imprima rápidamente un recibo de caja (pago, factura...) para cualquier entrada deseada seleccionada de esta lista. ¡Vamos!

Paso 1. Crear un formulario

En otra hoja del libro (llamemos a esta hoja Formulario de Contacto) crear un formulario vacío. Puede hacerlo usted mismo, puede usar formularios preparados, tomados, por ejemplo, de los sitios web de la revista Chief Accountant o del sitio web de Microsoft. Tengo algo como esto:

Rellenar los formularios con los datos de la tabla

En celdas vacías (Cuenta, Monto, Recibido de etc.) obtendrá datos de la tabla de pagos de otra hoja; un poco más adelante nos ocuparemos de esto.

Paso 2: Preparando la tabla de pagos

Antes de tomar datos de la tabla para nuestro formulario, la tabla debe modernizarse ligeramente. Es decir, inserte una columna vacía a la izquierda de la tabla. Usaremos para ingresar una etiqueta (que sea la letra inglesa “x”) frente a la línea desde la cual queremos agregar datos al formulario:

Paso 3. Vincular la tabla y el formulario

Para la comunicación, usamos la función VPR(VLOOKUP) - Puedes leer más sobre esto aquí. En nuestro caso, para insertar el número de pago marcado con una “x” de la Hoja de datos en la celda F9 del formulario, debe ingresar la siguiente fórmula en la celda F9:

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

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

Aquellos. traducido a “comprensible”, la función debe buscar en el rango A2: G16 en la Hoja de datos una línea que comience con el carácter “x” y darnos el contenido de la segunda columna de esta línea, es decir, el número de pago.

Todas las demás celdas del formulario se rellenan de la misma manera: solo cambia el número de columna en la fórmula.

Para mostrar la cantidad en palabras, usé la función Propia del complemento PLEX.

El resultado debe ser el siguiente:

Rellenar los formularios con los datos de la tabla

Paso 4. Para que no queden dos “x”…

Si el usuario ingresa "x" en varias líneas, la función BUSCARV solo tomará el primer valor que encuentre. Para evitar tal ambigüedad, haga clic derecho en la pestaña de la hoja Datos y luego Texto de origen (Código fuente). En la ventana del editor de Visual Basic que aparece, copie el siguiente 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 evita que el usuario ingrese más de una "x" en la primera columna.

¡Bueno eso es todo! ¡Disfrutar!

  • Uso de la función BUSCARV para sustituir valores
  • Una versión mejorada de la función BUSCARV
  • Cantidad en palabras (función Propis) del complemento PLEX

 

Deje un comentario