Posts Tagged ‘top’

Макрос для написания числа прописью

Четверг, Июнь 18th, 2009

Коллега увидел оформление мною командировочных расходов и очень сильно захотел получить такой вот замечательный код, так сказать hit (hits) сезона. Честно говоря я его давным давно вытащил откуда-то из Интернета и не помню какой добрый человек его написал и выложил, знал бы разместил бы ссылку на его сайт. Но коли бесплатно его в свое время получил, то бесплатно и выкладываю для скачивания (одним файлом можно его скачать тут - Скрип для перевода в рубли прописью) Идея довольно простая - есть число, необходимо представить его прописью и добавить слово рублей. С копейками мне работать не приходится, поэтому ставится всегда “00 коп.”, если кого-то не устраивает - дорабатывайте, на свой вкус.

Прикручивается он к Excel довольно просто и на то как это сделать есть масса описаний в Интернете, поэтому размещаю сам текст (еще раз спасибо неизвестному доброму человеку за его написание):

Attribute VB_Name = “Module1″
Function propis(SourceDigits As Currency) As String
Dim STRNG As String, CHAR, Result As String, Prom As String
Dim i, STRNG_len As Long
Dim SourceDigTail As Currency

SourceDigTail = (SourceDigits - Int(SourceDigits)) * 100
SourceDigits = Int(SourceDigits)

STRNG = SourceDigits
STRNG_len = Len(STRNG)
For i = 1 To 9 - STRNG_len Step 1
STRNG = “0″ & STRNG
Next i

For i = 9 To 9 - STRNG_len + 1 Step -1
CHAR = Mid(STRNG, i, 1)
If CHAR = “” Then GoTo end_c

If i = 2 Or i = 5 Or i = 8 Then
If CHAR = “1″ Then
CHAR = Mid(STRNG, i, 2)
Select Case CHAR
Case “10″
Prom = “десять ”
Case “11″
Prom = “одиннадцать ”
Case “12″
Prom = “двенадцать ”
Case “13″
Prom = “тринадцать ”
Case “14″
Prom = “четырнадцать ”
Case “15″
Prom = “пятнадцать ”
Case “16″
Prom = “шестнадцать ”
Case “17″
Prom = “семьнадцать ”
Case “18″
Prom = “восемьнадцать ”
Case “19″
Prom = “девятнадцать ”
End Select
Else  ‘ If char Not = 1
Select Case CHAR
Case “0″
Prom = “”
Case “2″
Prom = “двадцать ”
Case “3″
Prom = “тридцать ”
Case “4″
Prom = “сорок ”
Case “5″
Prom = “пятьдесят ”
Case “6″
Prom = “шестьдесят ”
Case “7″
Prom = “семьдесят ”
Case “8″
Prom = “восемьдесят ”
Case “9″
Prom = “девяносто ”
End Select
End If
End If
If i = 1 Or i = 4 Or i = 7 Then
Select Case CHAR
Case “0″
Prom = “”
Case “1″
Prom = “сто ”
Case “2″
Prom = “двести ”
Case “3″
Prom = “триста ”
Case “4″
Prom = “четыреста ”
Case “5″
Prom = “пятьсот ”
Case “6″
Prom = “шестьсот ”
Case “7″
Prom = “семьсот ”
Case “8″
Prom = “восемьсот ”
Case “9″
Prom = “девятьсот ”
End Select
End If

If i = 3 Or i = 6 Or i = 9 Then

If i = 9 And Mid(STRNG, i - 1, 1) = “1″ Then
Result = “рублей ” & Result
GoTo end_c
End If

If i = 3 And Mid(STRNG, i - 1, 1) = “1″ Then
Result = “миллионов ” & Result
GoTo end_c
End If

If i = 6 And Mid(STRNG, i - 1, 1) = “1″ Then
Result = “тысяч ” & Result
GoTo end_c
End If

Select Case CHAR
Case “0″
Prom = “”
Case “1″
If i = 6 Then
Prom = “одна ”
Else
Prom = “один ”
End If
Case “2″
If i = 6 Then
Prom = “две ”
Else
Prom = “два ”
End If
Case “3″
Prom = “три ”
Case “4″
Prom = “четыре ”
Case “5″
Prom = “пять ”
Case “6″
Prom = “шесть ”
Case “7″
Prom = “семь ”
Case “8″
Prom = “восемь ”
Case “9″
Prom = “девять ”
End Select
End If
Select Case i

Case 3
Select Case CHAR
Case “1″
Result = “миллион ” & Result
Case “2″, “3″, “4″
Result = “миллиона ” & Result
Case “5″, “6″, “7″, “8″, “9″
Result = “миллионов ” & Result
Case “0″
If STRNG_len > 6 Then
Result = “миллионов ” & Result
End If
End Select

Case 6
Select Case CHAR
Case “1″
Result = “тысячa ” & Result
Case “2″, “3″, “4″
Result = “тысячи ” & Result
Case “5″, “6″, “7″, “8″, “9″
Result = “тысяч ” & Result
Case “0″
If STRNG_len > 3 Then
Result = “тысяч ” & Result
End If
End Select

Case 9
Select Case CHAR
Case “1″
Result = “рубль ” & Result
Case “2″, “3″, “4″
Result = “рубля ” & Result
Case “0″, “5″, “6″, “7″, “8″, “9″
Result = “рублей ” & Result
End Select
End Select

Result = Prom & Result

end_c:
Next i

Result = Format(Mid(Result, 1, 1), “>”) & Mid(Result, 2)

propis = Result & Format(SourceDigTail, “00″) & ” коп.”

End Function

Вот и весь макрос. Если кто-то желает что-то написать на эту тему - пишите вот по этому адресу: mail@key-vip.com
А вот тут похожее обсуждение, того же макроса http://www.liveinternet.ru/users/lyuciena/post39732232/

Если будут силы, чуть позже выложу Excel файл, в котором это применяется при заполнении командировки и написании авансового отчета. А может вообще отдельный ТОП (TOP)  ик организую. “В помощь EXEL истам”

Всегда Ваш.

И немного спама… Для поддержки английских выборок.

Понедельник, Апрель 21st, 2008

Надо же чем-то “зверя” кормить. Эка его расплющило от слов из спамного письма по IP телефонии;) Итак -СПАМ в студию! Кушайте товарищь РОБОТ!:)

Dear ,

InfoSecurity Europe 2008 in London is almost here!

If you are planning to attend this exciting conference, visit the Lancope stand G180 at InfoSecurity Europe in London, England on April 22-25, 2008 to receive your FREE GIFT and to view a demo of the award-winning StealthWatch System, the most widely used Network Behaviour Analysis (NBA) solution.

Join Us for a 1-Hour panel discussion while at InfoSec Europe to learn why top universities choose Network Behaviour Analysis to address their network and security challenges.

Why We Selected Lancope’s StealthWatch for Network Behaviour Analysis
New Products Theatre (main floor of conference)
Tuesday 22 April, 2008
15:30 - 16:30 pm UK

Customer Panel: Mark Pleunes, Network Manager, Grafisch Lyceum Rotterdam University; Lee Rose, Network Manager, University of Westminster; Paul Kennedy, Security and Compliance Group Leader, University of Nottingham

For more information about the panel discussion visit the Lancope stand G180 or contact us at international@lancope.com

Want to Learn More About Flow-Based Anomaly Detection?

Join Lancope’s David Salter, Senior Systems Engineer, as he delivers a detailed presentation titled “Flow-based Anomaly Detection” from 14:00-14:25 pm on 24 April, 2008 in the Technical Theatre

In this session, he will examine how flow-based anomaly detection leverages NetFlow and sFlow to provide lightweight, cost-effective security monitoring for distributed environments, where sensor-based technologies are expensive and impractical.

For more information on this presentation click here

We hope to see you in London!

Regards,
David Schwickerath
Vice President, International Field Operations


Page 1 of 11