Попълване на формулярите с данни от таблицата

Формулиране на проблема

Имаме база данни (списък, таблица – наречете го както искате) с информация за плащанията на лист Дата:

Task: бързо отпечатайте касова бележка (плащане, фактура ...) за всеки желан запис, избран от този списък. Отивам!

Стъпка 1. Създайте формуляр

На друг лист от книгата (да наречем този лист Форма) създайте празен формуляр. Можете да го направите сами, можете да използвате готови формуляри, взети например от уебсайтовете на списание Главен счетоводител или уебсайта на Microsoft. Получих нещо подобно:

Попълване на формулярите с данни от таблицата

В празни клетки (Сметка, Сума, Получено от и т.н.) ще получи данни от таблицата за плащане от друг лист - малко по-късно ще се занимаем с това.

Стъпка 2: Подготовка на таблицата за плащане

Преди да вземем данни от таблицата за нашата форма, таблицата трябва да бъде леко модернизирана. А именно, вмъкнете празна колона отляво на таблицата. Ще използваме за въвеждане на етикет (нека бъде английската буква “x”) срещу реда, от който искаме да добавим данни към формуляра:

Стъпка 3. Свързване на таблицата и формата

За комуникация използваме функцията ВПР(VLOOKUP) – можете да прочетете повече за това тук. В нашия случай, за да вмъкнете номера на плащането, отбелязано с “x” от информационния лист в клетка F9 на формуляра, трябва да въведете следната формула в клетка F9:

=VLOOKUP(“x”,Данни!A2:G16)

=VLOOKUP(“x”;Данни!B2:G16;2;0)

Тези. преведено на „разбираемо“, функцията трябва да намери в диапазона A2: G16 на информационния лист ред, започващ със знака „x“ и да ни даде съдържанието на втората колона на този ред, т.е. номер на плащане.

Всички останали клетки във формуляра се попълват по същия начин – само номерът на колоната се променя във формулата.

За да покажа сумата с думи, използвах функцията Собствен от добавката PLEX.

Резултатът трябва да е следният:

Попълване на формулярите с данни от таблицата

Стъпка 4. За да няма два „х“ …

Ако потребителят въведе „x“ срещу няколко реда, функцията VLOOKUP ще вземе само първата намерена стойност. За да избегнете такава неяснота, щракнете с десния бутон върху раздела на листа Дата и след това Изходен текст (Програмен код). В прозореца на редактора на Visual Basic, който се появява, копирайте следния код:

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  

Този макрос не позволява на потребителя да въвежда повече от един „x“ в първата колона.

Е, това е всичко! Наслади се!

  • Използване на функцията VLOOKUP за заместване на стойности
  • Подобрена версия на функцията VLOOKUP
  • Сума в думи (функция Propis) от добавката PLEX

 

Оставете коментар