Post by TajanWitam!
Post by pxd74Post by BaobamW jaki sposób mogę sformatować numer rachunku bankowego, żeby wyświetlał
się w postaci XX XXXX XXXX XXXX XXXX XXXX XXXX ? Niestety probówałem jako
format niestandardowy podawać ## #### ... #### i 00 0000 ... 0000 ale
zawsze wychodzi pogrupowane co trzy cyfry, tak jakby to była liczba.
00" "0000" "0000" "0000 .... itd.
Obawiam się, że to nic nie da, bo nie uda ci się wprowadzić numeru konta
bankowego jako liczby, ze względu na to, że Excel ogranicza ilośc cyfr
znaczących w liczbie do 15 (pozostałe sa zamieniane na 0), a konto bankowe ma
tych cyfr 26.
Jedynym rozwiązaniem wydaje się być zastosowanie formatu tekstowego i specjalne
makro, które odpowiednio sformatuje ciąg tekstowy.
Kiedyś nawet takie napisałem, ale musiałbym poszukać. Jeżeli będziesz
zainteresowny, to je przedstawię na grupie.
Hej.
Rzeczywiście ten sposób nie działa. Początkowo nie zauważyłem, że wszystkie
numery kont kończą się samymi zerami.
Napisałem sobie makro, które sprawdza oraz formatuje numer, ale z jakiegoś
powodu z numeru nie są usuwane spacje przy pomocy Replace(). Gdybyś mógł
podesłać swoje byłbym wdzięczny.
Ponieważ to mój pierwszy program w VB (VBA) (to, że nie mogłem tego zrobić
zmotywowało mnie do nauki ;) i nie znam tego języka za dobrze, dlatego
proszę również o ocenę tego co tu naskrobałem (co można poprawić itd.):
Sub FormatujNRB()
Dim NRB, NRBPL, Wagi, Suma As Integer
With ActiveCell
Selection.NumberFormat = "@"
.FormulaR1C1 = "44 1050 1445 1000 0022 9238 1726"
Wagi = Array(57, 93, 19, 31, 71, 75, 56, 25, 51, 73, 17, 89, 38,
62, 45, 53, 15, 50, 5, 49, 34, 81, 76, 27, 90, 9, 30, 3, 10, 1)
NRB = Replace(.Text, " ", "")
If Len(NRB) <> 26 Then
Call Blad
Exit Sub
End If
NRBPL = Right(NRB, 24) + "2521" + Left(NRB, 2)
For I = 30 To 1 Step -1
Suma = Suma + CInt(Mid(NRBPL, I, 1)) * Wagi(I - 1)
Next I
If Suma Mod 97 = 1 Then
.FormulaR1C1 = Left(NRB, 2)
For I = 3 To 26 Step 4
.FormulaR1C1 = .Text + " " + Mid(NRB, I, 4)
Next I
Else
Call Blad
Exit Sub
End If
End With
End Sub
Sub Blad()
ActiveCell.FormulaR1C1 = "Niepoprawny NRB"
End Sub
--
Pozdrawiam,
Baobam