Fylla i formulären med data från tabellen

Formulering av problemet

Vi har en databas (lista, tabell – kalla det vad du vill) med information om betalningar på ett blad Data:

uppgift: skriv snabbt ut ett kassakvitto (betalning, faktura ...) för valfri post vald från denna lista. Gå!

Steg 1. Skapa ett formulär

På ett annat ark i boken (låt oss kalla detta ark Form) skapa ett tomt formulär. Du kan göra det själv, du kan använda färdiga formulär, hämtade till exempel från webbplatserna för tidningen Chief Accountant eller Microsofts webbplats. Jag fick något sånt här:

Fylla i formulären med data från tabellen

I tomma celler (Konto, Belopp, Mottaget från etc.) kommer att få data från betalningstabellen från ett annat ark – lite senare kommer vi att ta itu med detta.

Steg 2: Förbered betalningstabellen

Innan du tar data från tabellen för vårt formulär måste tabellen moderniseras något. Sätt nämligen in en tom kolumn till vänster om tabellen. Vi kommer att använda för att ange en etikett (låt det vara den engelska bokstaven "x") mittemot raden från vilken vi vill lägga till data i formuläret:

Steg 3. Länka tabell och formulär

För kommunikation använder vi funktionen VPR(VISNING) – du kan läsa mer om det här. I vårt fall, för att infoga numret på betalningen märkt "x" från databladet i cell F9 på formuläret, måste du ange följande formel i cell F9:

=SÖKUPPSÖKNING(“x”,Data!A2:G16)

=SÖKUPPGIFTER(“x”;Data!B2:G16;2;0)

De där. översatt till "förståeligt", bör funktionen hitta i intervallet A2: G16 på databladet en rad som börjar med tecknet "x" och ge oss innehållet i den andra kolumnen på denna rad, dvs betalningsnummer.

Alla andra celler i formuläret fylls i på samma sätt – bara kolumnnumret ändras i formeln.

För att visa mängden i ord använde jag funktionen Egen från PLEX-tillägget.

Resultatet bör bli följande:

Fylla i formulären med data från tabellen

Steg 4. Så att det inte finns två "x" ...

Om användaren anger "x" mot flera rader, tar VLOOKUP-funktionen endast det första värdet den hittar. För att undvika sådan oklarhet, högerklicka på arkfliken Data och då Källtext (Källkod). Kopiera följande kod i Visual Basic-redigeringsfönstret som visas:

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  

Detta makro hindrar användaren från att ange mer än ett "x" i den första kolumnen.

Tja, det är allt! Njut av!

  • Använda funktionen VLOOKUP för att ersätta värden
  • En förbättrad version av VLOOKUP-funktionen
  • Belopp i ord (Propis-funktion) från PLEX-tillägget

 

Kommentera uppropet