Udfyldelse af formularerne med data fra tabellen

Formulering af problemet

Vi har en database (liste, tabel – kald det hvad du vil) med oplysninger om betalinger på et ark data:

Opgaver: Udskriv hurtigt en kontantkvittering (betaling, faktura ...) for enhver ønsket post valgt fra denne liste. Gå!

Trin 1. Opret en formular

På et andet ark af bogen (lad os kalde dette ark Form) oprette en tom formular. Du kan gøre det selv, du kan bruge færdige formularer, hentet for eksempel fra hjemmesiderne for regnskabschefmagasinet eller Microsofts hjemmeside. Jeg fik noget som dette:

Udfyldelse af formularerne med data fra tabellen

I tomme celler (Konto, Beløb, Modtaget fra osv.) får data fra betalingstabellen fra et andet ark – lidt senere vil vi behandle dette.

Trin 2: Forberedelse af betalingstabellen

Før du tager data fra tabellen til vores formular, skal tabellen moderniseres lidt. Indsæt nemlig en tom kolonne til venstre for tabellen. Vi vil bruge til at indtaste en etiket (lad det være det engelske bogstav "x") modsat linjen, hvorfra vi vil tilføje data til formularen:

Trin 3. Sammenkædning af tabel og formular

Til kommunikation bruger vi funktionen VPR(OPLYSNING) – du kan læse mere om det her. I vores tilfælde, for at indsætte nummeret på betalingen markeret med "x" fra dataarket i celle F9 på formularen, skal du indtaste følgende formel i celle F9:

=OPSLAG(“x”,Data!A2:G16)

=OPSLAG(“x”;Data!B2:G16;2;0)

De der. oversat til "forståeligt", skal funktionen finde i området A2: G16 på Databladet en linje, der starter med tegnet "x" og give os indholdet af anden kolonne i denne linje, dvs. betalingsnummer.

Alle andre celler i formularen udfyldes på samme måde - kun kolonnenummeret ændres i formlen.

For at vise beløbet i ord brugte jeg funktionen Egen fra PLEX-tilføjelsen.

Resultatet skal være følgende:

Udfyldelse af formularerne med data fra tabellen

Trin 4. Så der ikke er to "x" ...

Hvis brugeren indtaster "x" mod flere linjer, vil VLOOKUP-funktionen kun tage den første værdi, den finder. For at undgå en sådan uklarhed skal du højreklikke på arkfanen data og så Kildetekst (Kildekode). Kopier følgende kode i Visual Basic-editorvinduet, der vises:

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).Rækkeområde("A2:A" & r).ClearContents Target.Value = str End If Application.EnableEvents = True End Sub  

Denne makro forhindrer brugeren i at indtaste mere end ét "x" i den første kolonne.

Nå, det er alt! God fornøjelse!

  • Brug af VLOOKUP-funktionen til at erstatte værdier
  • En forbedret version af VLOOKUP-funktionen
  • Beløb i ord (Propis-funktion) fra PLEX-tilføjelsen

 

Giv en kommentar