Makro do S艂ownie (EXCEL 2007)


Sub slownie()
' Makro, EXCEL 2007, pasuje do '97, 2010
' Autor: Piotr M黮dner-Nieckowski, 2008 r., 2012 r.
' Funkcja pomocnicza wypisywania kwoty faktury s艂ownie
On Error GoTo blad


' Poda膰 nazwy arkuszy, kolumn i wierszy umieszczania wyniku, pobierania danych liczbowych
' usun膮膰 nieistniej膮ce w Twoim arkuszu
' Waluta - mo偶e by膰 podmieniona przez sta艂膮, np. "z艂" lub pobrana z Twojej tabeli walut

Nazwaark$ = Application.ActiveSheet.Name
If Nazwaark$ = "Faktura VAT" Or Nazwaark$ = "Przegl膮d dokument贸w" Then kol = 2: wierszzl = 40: wierszgr = 41: koldane = 3: wierszdane = 39: waluta = Application.Cells(49, 7): GoTo Obliczenia
If Nazwaark$ = "Paragon" Then kol = 3: wierszzl = 20: wierszgr = 21: koldane = 8: wierszdane = 19: waluta = Application.Cells(32, 6): GoTo Obliczenia
If Nazwaark$ = "Dow贸d wp艂aty" Then kol = 1: wierszzl = 3: wierszgr = 4: koldane = 1: wierszdane = 2: waluta = 1: GoTo Obliczenia
If Nazwaark$ = "Bank. Dow贸d Wp艂aty" Then kol = 3: wierszzl = 19: wierszgr = 20: koldane = 4: wierszdane = 18: waluta = 1: GoTo Obliczenia
If Nazwaark$ = "Przekaz Pocztowy" Then kol = 2: wierszzl = 30: wierszgr = 31: koldane = 3: wierszdane = 29: waluta = 1: GoTo Obliczenia
If Nazwaark$ = "Polecenie Przelewu" Then kol = 5: wierszzl = 30: wierszgr = 33: koldane = 7: wierszdane = 35: waluta = 1: GoTo Obliczenia

If Nazwaark$ = "Nota Memoria艂owa" Then Exit Sub

Beep
MsgBox "Jaki艣 b艂膮d: to nie ten arkusz", 32, "bulll...bull...bul..."
Exit Sub

Obliczenia:
liczbatys = 0
liczba = 0
l = 0
Dim slownie$
slownie$ = ""
waluta1 = Worksheets("Opcje").Cells(12 + waluta, 4)
waluta2 = Worksheets("Opcje").Cells(12 + waluta, 5)

Static setki(10) As String
Static dzies(10) As String
Static jedn(20) As String

setki(0) = ""
setki(1) = "sto"
setki(2) = "dwie艣cie"
setki(3) = "trzysta"
setki(4) = "czterysta"
setki(5) = "pi臋膰set"
setki(6) = "sze艣膰set"
setki(7) = "siedemset"
setki(8) = "osiemset"
setki(9) = "dziewi臋膰set"
dzies(0) = ""
dzies(1) = "dziesi臋膰"
dzies(2) = "dwadzie艣cia"
dzies(3) = "trzydzie艣ci"
dzies(4) = "czterdzie艣ci"
dzies(5) = "pi臋膰dziesi膮t"
dzies(6) = "sze艣膰dziesi膮t"
dzies(7) = "siedemdziesi膮t"
dzies(8) = "osiemdziesi膮t"
dzies(9) = "dziewi臋膰dziesi膮t"
jedn(0) = ""
jedn(1) = "jeden"
jedn(2) = "dwa"
jedn(3) = "trzy"
jedn(4) = "cztery"
jedn(5) = "pi臋膰"
jedn(6) = "sze艣膰"
jedn(7) = "siedem"
jedn(8) = "osiem"
jedn(9) = "dziewi臋膰"
jedn(10) = "dziesi臋膰"
jedn(11) = "jedena艣cie"
jedn(12) = "dwana艣cie"
jedn(13) = "trzyna艣cie"
jedn(14) = "czterna艣cie"
jedn(15) = "pi臋tna艣cie"
jedn(16) = "szesna艣cie"
jedn(17) = "siedemna艣cie"
jedn(18) = "osiemna艣cie"
jedn(19) = "dziewi臋tna艣cie"

Application.Cells(wierszzl, kol) = slownie$
'Application.Cells(wierszgr, kol) = slownie$
dana = Round(Application.Cells(wierszdane, koldane), 2)

If dana >= 1000000 Then
Beep
'Application.Cells(wierszzl, kol) = "Za du偶a liczba!"
Application.Cells(wierszzl, kol) = "Za du偶a liczba! Wprowad藕 kwot臋 r臋cznie."
'Application.Cells(wierszgr, kol) = "Wprowad藕 kwot臋 r臋cznie!"
MsgBox "Tak dobrze liczy膰 nie potrafi臋!", 16, "Nic z tego!"
Exit Sub
End If

liczba = Int(dana)
liczbagr = Str(Int(((dana - liczba) * 100) + 0.005))

liczbatys = Int(liczba / 1000)
liczba = liczbatys

GoSub Przelicz

If liczbatys = 1 Then slownie$ = slownie$ + " tysi膮c ": GoTo Pz
If slownie$ = "" Then GoTo Pz
po = Str$(liczbatys)

py = Right(po, 2)
If py > 11 And py < 15 Then
slownie$ = slownie$ + " tysi臋cy "
GoTo Pz
End If

py = Right(po, 1)

If py <= 1 Then slownie$ = slownie$ + " tysi臋cy "
If py >= 5 Then slownie$ = slownie$ + " tysi臋cy "
If py > 1 And py < 5 Then slownie$ = slownie$ + " tysi膮ce "

Pz:
liczba = Int(dana) - (liczbatys * 1000)

GoSub Przelicz

If slownie$ = "" Then
slownie$ = "zero"
End If

If Nazwaark$ = "Faktura VAT" Or Nazwaark$ = "Przegl膮d dokument贸w" Or Nazwaark$ = "Rachunek Uproszczony" Or Nazwaark$ = "Dow贸d wp艂aty" Then
slownie$ = "S艂ownie: " & slownie$
End If

If Len(liczbagr) = 2 Then liczbagr = Replace(liczbagr, " ", "0") 'UWAGA NA TO dodaje zero na pocz膮tku

slownie$ = slownie$ & " " & waluta1 & " " & liczbagr & " " & waluta2

Application.Cells(wierszzl, kol) = slownie$

Exit Sub

Przelicz:

If liczba = 0 Then GoTo Koniec
l = Int(liczba / 100)
slownie$ = slownie$ + setki(l)

liczba = liczba - (l * 100)
If liczba < 20 Then slownie$ = slownie$ + " " + jedn(liczba): GoTo Koniec
l = Int(liczba / 10)
slownie$ = slownie$ + " " + dzies(l)

liczba = liczba - (l * 10)
slownie$ = slownie$ + " " + jedn(liczba)

Koniec:
Return

blad:
MsgBox "B艂膮d przy przeliczaniu s艂ownie...", , "B艂膮d!"
Exit Sub

End Sub

Wyszukiwarka

Podobne podstrony:
informatyka excel 2007 pl leksykon kieszonkowy wydanie ii curt frye ebook
Excel 2007 Jezyk VBA i makra Rozwiazania w biznesie
Od A do Z s艂owniczek wyra偶e艅 przydatnych w obcowaniu z funduszami inwestycyjnymi
Skr贸ty klawiaturowe Excel 2007
FIAT BRAVO Gotowi do jazdy `389048  2007
Excel 2007 pl Sztuczki i chwyty
Excel 2007
Skr贸ty klawiszowe do Microsoft Excel
KLUCZ DO MS OFFICE 2007
Symulacja komputerowa zalozenia do realizacji zadan 2007

wi臋cej podobnych podstron