Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /profiles/j/jo/joh/johnson/johnson.cba.pl/wp-content/plugins/wp-slimstat/browscap.php on line 589

Warning: fsockopen() [function.fsockopen]: unable to connect to updates.browserproject.com:80 (php_network_getaddresses: getaddrinfo failed: Name or service not known) in /profiles/j/jo/joh/johnson/johnson.cba.pl/wp-content/plugins/wp-slimstat/browscap.php on line 589
Johnson Blog » Blog Archive » Jak ułatwić sobie pracę z cyframi w Wordzie ?
Jeśli jesteś właścicielem tej strony, możesz wyłączyć reklamę poniżej zmieniając pakiet na PRO lub VIP w panelu naszego hostingu już od 4zł!

Jak ułatwić sobie pracę z cyframi w Wordzie ?

Jeśli potrzebujesz wpisywać cyfry i liczbą i słownie to rozwiązanie dla Ciebie:

Slownie (Word VBA)

Sub WpiszKwotaSlownie()
‘ wpisywanie cyfr słowami
‘ wersja 3.0
‘ ukończono 2007-11-08
‘ cyfra odczytana z tekstu albo z ImputBoxa
‘——————————————————————–
‘ deklaracja zmiennych

Dim RodzajDanych As Boolean ‘ true = poprzednie słowo jest cyfrą; false = poprzednie słowo nie jest cyfrą -> uruchom ImputBox
Dim WybraneSlowo As String ‘ poprzednie, przed uruchomieniem makra, słowo, może cyfra ? ;)
Dim strSlownie As String ‘ cyfra do zamiany na słowa
Dim strTestSlowa As String ‘ sprawdzanie czy cyfra z tekstu ma coś po przecinku
Dim strWynik As String ‘ wynik przekształcenia, czyli cyfra “słownie”

‘—————————————————-
‘ I. sprawdzenie czy cyfrę już wpisano
‘—————————————————-

Selection.MoveLeft Unit:=wdWord, Count:=3, Extend:=wdExtend
strTestSlowa = Selection
Selection.MoveRight Unit:=wdCharacter, Count:=1
If InStr(strTestSlowa, “,”) = 0 Then
Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend
WybraneSlowo = Selection
Selection.MoveRight Unit:=wdCharacter, Count:=1
Else
WybraneSlowo = strTestSlowa
End If

If IsNumeric(WybraneSlowo) Then
RodzajDanych = True
strSlownie = WybraneSlowo
Else
RodzajDanych = False
strSlownie = InputBox(“Podaj cyfrę …”, ” Cyfra …”)
End If

‘———————————————————
‘ II. koniec pobierania danych i ich ostateczny test
‘———————————————————

If strSlownie <> “” Then
If IsNumeric(strSlownie) = False Then Exit Sub
Else
Exit Sub
End If

‘—————————————————-
‘ dane są cyfrą :)
‘—————————————————-
‘ III. przekształcanie i wpisanie do tekstu
‘ —————————————————

If RodzajDanych = True Then
strWynik = “(” & Slownie(L:=strSlownie) & “)”
Else
strWynik = strSlownie & ” (” & Slownie(L:=strSlownie) & “)”
End If
With Selection
.InsertAfter ” ”
.InsertAfter strWynik
.InsertAfter ” ”
.MoveRight
End With
End Sub

Public Function Slownie(L) As String
Dim C As Currency
Dim S As String, G As String, Liczba000 As String
Dim i As Byte, Wynik As String, L1 As Byte, L10 As Byte, L100 As Byte
If Not IsNumeric(L) Then
Wynik = “???”
ElseIf L > 999999999999# Then
Wynik = “+++”
ElseIf L < -999999999999# Then
Wynik = “—”
Else
C = CCur(L)
Wynik = Switch(C < 0, “minus”) & “”
If Fix(C) = 0 Then
Wynik = Wynik & ” ” & “zero złotych”
ElseIf Int(Abs(C)) = 1 Then
Wynik = Wynik & ” ” & “jeden złoty”
Else
S = Right(Format(Fix(C), “000000000000″), 12) ‘—-złote
For i = 0 To 3
Liczba000 = Mid(S, 3 * i + 1, 3)
If CInt(Liczba000) = 1 Then
Wynik = Trim(Wynik) & ” ” & Trim(“jeden ” & Choose(i + 1, “miliard”, “milion”, “tysiąc”, “złotych”))
Else
L1 = Right(Liczba000, 1)
L10 = Mid(Liczba000, 2, 1)
L100 = Left(Liczba000, 1)
If L1 + L10 + L100 > 0 Then
Wynik = Trim(Wynik) & ” ” & Trim(Stringi(“setki”, L100) & ” ” & Stringi(“dziesiatki”, L10))
If L10 = 1 Then
Wynik = Trim(Wynik) & ” ” & Stringi(“nastki”, L1) & ” ” & Choose(i + 1, “miliardów”, “milionów”, “tysięcy”, “złotych”)
Else
Wynik = Trim(Wynik) & ” ” & Trim(Stringi(“jednostki”, L1) & ” ” & Stringi(“sekcja” & i, L1))
End If
End If
If (i = 3) And (L10 <> 1) Then Wynik = Trim(Wynik) & ” ” & Stringi(“zlote”, Right(S, 1))
End If
Next i
End If
G = Right(Format(C, “0.00″), 2) ‘—grosze
Wynik = Trim(Wynik) & “, ”
If G = 0 Then
Wynik = Trim(Wynik) & ” zero groszy”
ElseIf G = 1 Then
Wynik = Trim(Wynik) & ” jeden grosz”
Else
If Left(G, 1) = 1 Then
Wynik = Trim(Wynik) & ” ” & Stringi(“nastki”, Right(G, 1)) & ” groszy”
Else
Wynik = Trim(Wynik) & ” ” & Trim(Stringi(“dziesiatki”, Left(G, 1)) & ” ” & Stringi(“jednostki”, Right(G, 1)))
Wynik = Trim(Wynik) & ” ” & Stringi(“grosze”, Right(G, 1))
End If
End If
End If
Slownie = Wynik
End Function

Public Function Stringi(NrStringu As String, Cyfra As Byte)
Select Case NrStringu
Case “jednostki”
Stringi = Choose(Cyfra, “jeden”, “dwa”, “trzy”, “cztery”, “pięć”, “sześć”, “siedem”, “osiem”, “dziewięć”)
Case “nastki”
Stringi = Choose(Cyfra + 1, “dziesięć”, “jedenaście”, “dwanaście”, “trzynaście”, “czternaście”, “piętnaście”, “szesnaście”, “siedemnaście”, “osiemnaście”, “dziewiętnaście”)
Case “dziesiatki”
Stringi = Choose(Cyfra, “”, “dwadzieścia”, “trzydzieści”, “czterdzieści”, “pięćdziesiąt”, “sześćdziesiąt”, “siedemdziesiąt”, “osiemdziesiąt”, “dziewięćdziesiąt”)
Case “setki”
Stringi = Choose(Cyfra, “sto”, “dwieście”, “trzysta”, “czterysta”, “pięćset”, “sześćset”, “siedemset”, “osiemset”, “dziewięćset”)
Case “sekcja2″
Stringi = Choose(Cyfra + 1, “tysięcy”, “tysięcy”, “tysiące”, “tysiące”, “tysiące”, “tysięcy”, “tysięcy”, “tysięcy”, “tysięcy”, “tysięcy”)
Case “sekcja1″
Stringi = Choose(Cyfra + 1, “milionów”, “milionów”, “miliony”, “miliony”, “miliony”, “milionów”, “milionów”, “milionów”, “milionów”, “milionów”)
Case “sekcja0″
Stringi = Choose(Cyfra + 1, “miliardów”, “miliardów”, “miliardy”, “miliardy”, “miliardy”, “miliardów”, “miliardów”, “miliardów”, “miliardów”, “miliardów”)
Case “zlote”
Stringi = Choose(Cyfra + 1, “złotych”, “złotych”, “złote”, “złote”, “złote”, “złotych”, “złotych”, “złotych”, “złotych”, “złotych”)
Case “grosze”
Stringi = Choose(Cyfra + 1, “groszy”, “groszy”, “grosze”, “grosze”, “grosze”, “groszy”, “groszy”, “groszy”, “groszy”, “groszy”)
End Select
End Function

Tags: , ,

Leave a Reply


Stats by WP SlimStat