Wypełnianie formularzy danymi z tabeli

Sformułowanie problemu

Mamy bazę danych (listę, tabelę – nazwij jak chcesz) z informacjami o płatnościach na arkuszu Dane:

Zadanie: szybko wydrukuj paragon gotówkowy (płatność, faktura…) dla dowolnego wpisu wybranego z tej listy. Iść!

Krok 1. Utwórz formularz

Na innym arkuszu książki (nazwijmy ten arkusz) Forma) utwórz pusty formularz. Możesz to zrobić sam, możesz skorzystać z gotowych formularzy, zaczerpniętych np. ze stron magazynu Głównej Księgowej czy strony Microsoftu. Mam coś takiego:

Wypełnianie formularzy danymi z tabeli

W pustych komórkach (Konto, Kwota, Otrzymane od itp.) uzyska dane z tabeli płatności z innego arkusza – trochę później zajmiemy się tym.

Krok 2: Przygotowanie tabeli płatności

Przed pobraniem danych z tabeli do naszego formularza, tabelę należy nieco unowocześnić. Mianowicie wstaw pustą kolumnę po lewej stronie tabeli. Użyjemy do wpisania etykiety (niech będzie to angielska litera „x”) naprzeciw wiersza, z którego chcemy dodać dane do formularza:

Krok 3. Łączenie tabeli i formularza

Do komunikacji używamy funkcji VPR(WYSZUKAJ.PIONOWO) – więcej na ten temat przeczytasz tutaj. W naszym przypadku, aby w komórce F9 na formularzu wstawić numer płatności oznaczony „x” z arkusza danych, należy w komórce F9 wpisać następującą formułę:

=WYSZUKAJ.PIONOWO("x",Dane!A2:G16)

=WYSZUKAJ.PIONOWO("x";Dane!B2:G16;2;0)

Tych. przetłumaczone na „zrozumiałe”, funkcja powinna znaleźć w zakresie A2:G16 w Arkuszu danych wiersz zaczynający się od znaku „x” i podać nam zawartość drugiej kolumny tego wiersza, czyli numer płatności.

Wszystkie pozostałe komórki formularza wypełnia się w ten sam sposób – w formule zmienia się tylko numer kolumny.

Aby wyświetlić kwotę słownie, użyłem funkcji Własny z dodatku PLEX.

Wynik powinien być następujący:

Wypełnianie formularzy danymi z tabeli

Krok 4. Aby nie było dwóch „x”…

Jeśli użytkownik wprowadzi „x” w wielu wierszach, funkcja WYSZUKAJ.PIONOWO przyjmie tylko pierwszą znalezioną wartość. Aby uniknąć takiej niejednoznaczności, kliknij prawym przyciskiem myszy kartę arkusza Dane , a następnie Tekst źródłowy (Kod źródłowy). W wyświetlonym oknie edytora Visual Basic skopiuj następujący kod:

Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Long Dim str As String Jeśli Target.Count > 1 Następnie wyjdź z Sub If Target.Column = 1 Then str = Target.Value Application.EnableEvents = Falser r = Cells(Rows.Count , 2).End(xlUp).Row Range("A2:A" & r).ClearContents Target.Value = str End If Application.EnableEvents = True End Sub  

To makro uniemożliwia użytkownikowi wpisanie więcej niż jednego „x” w pierwszej kolumnie.

Cóż, to wszystko! Cieszyć się!

  • Używanie funkcji WYSZUKAJ.PIONOWO do zastępowania wartości
  • Ulepszona wersja funkcji WYSZUKAJ.PIONOWO
  • Kwota w słowach (funkcja Propis) z dodatku PLEX

 

Dodaj komentarz