• succor
    DEFINITION: (noun) Assistance in time of distress. SYNONYMS: ministration, relief. USAGE: The dying man's eyes were all the time riveted on the door, through which he hoped succor would arrive. Discuss […]
March 2010
M T W T F S S
« Jan    
1234567
891011121314
15161718192021
22232425262728
293031  

kwota słownie w excelu

Ostatnie obowiązki (fakturowanie, przygotowywanie rachunków itd.) dały mi szansę po raz kolejny pobawić się excelem. I byłoby miło gdyby nie obowiązkowe wpisywanie kwot słownie. Tak jak mówiłem ostatnio przygotowałem sobie makro na podstawie jednego z krążących w sieci przepisów. Nie spodziewałem się nawet jak często będę musiał go używać.

Najprostszym wyjściem jest zainstalowanie go jako dodatku excela (plik .xla dla wersji do 2003 i .xlam dla 2007) – dla ułatwienia przygotowałem plik .xla

Aby móc używać nowej funkcji =slownie() należy zainstalować dodatek. Najlepiej pobrany plik skopiować do właściwego katalogu

dla Excela 97-2003 będzie to: C:\Program Files\Microsoft Office\Office XX\Library

xx to numer wersji Excela np. 11 lub 12

dla 2007 C:\Documents and Settings\Twoja nazwa użytkownika\Dane Aplikacji\Microsoft\Dodatki

Następnie (Excel 97-2003) z menu Narzędzia wybieramy Dodatki i jeżeli plik jest w odpowienim katalogu (powyżej) wystarczy zaznaczyć okienko przy jego nazwie i kliknąć OK. (jeśli plik jest w innym katalogu, wybieramy Przeglądaj i odnajdujemy go – ważne żeby później nie zmieniać lokalizacji pliku).

W Excel 2007 procedura jest niemal identyczna – klikamy przycisk Office i wybieramy Opcje programu Excel i Dodatki. Pliki z katalogu powyżej będą gotowe do wybrania – jeśli umieściliśmy je gdzie indziej, należy wskazać je korzystając z opcji Zarządzaj – Przejdź (na dole okna poniżej).

addinspo zainstalowaniu dodatku formuła =slownie(a1) zamieni cyfrową zawartość komórki a1 – np. “199,91″ na sto “dziewięćdziesiąt dziewięć złotych dziewięćdziesiąt jeden groszy”

mój pierwszy raz…

fakturavatWczoraj po raz pierwszy wystawiłem fakturę VAT (i co z tego, że na usługę zwolnioną od podatku) a przy okazji – skoro wobec zmian kadrowych w firmie to na mnie spadł ten zaszczyt – postanowiłem ułatwić sobie nieco życie.

Faktura w docx z osadzonymi obiektami excela policzy VAT (dla zwolnionych należy wpisać “zw”) i zsumuje do kilkunastu pozycji (zresztą łatwo ją wydłużyć). Na podstawie wpisanej liczby dni oblicza termin zapłaty, po wydrukowaniu może służyć za podstawkę pod kubek.

Nie wpisuje sama kwoty slownie. Skrypty do tego wiszą w internecie ale na razie spróbuję coś napisać sam – bez ściągania.

–update-2009-06-30–

Jednak się złamałem i użyłem gotowca (z kilkoma niewielkimi przeróbkami). Wersja wpisująca kwotę słownie wymaga akceptacji makr więc wstawiam – tutaj.

simple VBA is good because it's good and simple

Od pewnego czasu nie daje mi spokoju fakt, że nie umiem korzystać z VBA. Czasem coś prostego sobie napiszę, częściej nagram jakieś makro i później usunę połowę żeby jako-tako działało, ale nie spędzam aż tyle czasu na powtarzalnym klikaniu po excelu czy wordzie, żeby mi się chciało coś z tym zrobić.

Za to EK przeżyła traumę widząc po raz kolejny jak drukarka wypluwa po 3 strony na raport lektora tylko dlatego, że znowu “obróciła się” orientacja strony. Same kłopoty z tą orientacją.

Mamy skoroszyt z kilkoma arkuszami (dla niektórych lektorów będzie to raczej kilkanaście) – po jednym na grupę i na końcu 2 podliczające wcześniej wpisywane dane. Plik krąży sobie mailowo* pomiędzy lektorem a szkołą i po każdych zajęciach jest uzupełniany o nowe dane. Magicznie coś od czasu do czasu się przestawia i zamiast ładnie drukować się na landscape’owo ustawionej A4 – raport wychodzi w kawałkach.

Fuj.

Przy okazji doczytywania o VBA skleciłem takie coś

Sub WorksheetTheRightOrientationForcedLoop()
Dim Worksheet_Count As Integer
Dim I As Integer
Dim answer As Variant
Worksheet_Count = ActiveWorkbook.Worksheets.Count
czyli definiujemy: Worksheet_Count czyli numer Arkusza i I – powtórzenie i answer/odpowiedź – jako wariant (pytać będziemy tak/nie
Pętlą powtarzamy całość dla każdego arkusza z kolei, za każdym razem pytając czy uczestnik chce go zmienić czy nie (niektórzy lektorzy mają arkusze zliczające gdzieś pomiędzy “raportami”.
For I = 1 To Worksheet_Count
answer = MsgBox(ActiveWorkbook.Worksheets(I).Name, vbQuestion + vbYesNo, "Should I change")
If answer = vbYes Then
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.Orientation = xlLandscape
End With
Range("A1:K29").Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$K$29"
ustawiamy orientację i dla pewności jeszcze obszar wydruku “na sztywno”.
ElseIf answer = vbNo Then
End If
Next I
End Sub
i kończymy pętlę
i idziemy do domu
i nawet działa :)

*dla niektórych lektorów – tych których nie przeraża odrobina techniki plik wisi sobie na google docs.