Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Obojiti rezultat funkcije

[es] :: Office :: Excel :: Obojiti rezultat funkcije

[ Pregleda: 975 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

olvejz
programer
vbinfo
Sarajevo

Član broj: 338328
Poruke: 2
*.telrad.net.



Profil

icon Obojiti rezultat funkcije15.04.2019. u 09:52 - pre 60 meseci
Rezultat VBA funkcije je string, koji bih trebao da obojim u zavisnosti od rezultata :
Greska u duzini - crveno
Nepoznat karakter - zuto
funkcija se na radnom listu poziva :
kbr(IDMM)
IDMM su stringovi u nekoj koloni, a kbr je rezultat izracunavanja.
Evo funkcije :
*****************************************************
Public Function kbr(IDMM As String) As String

Dim idmm1 As String
Dim AlfaStr As String, AlfaNum As Long, Alfa1 As String
Dim Suma As Long
Dim Check As Long


' *********************** Ako je duzina IDMM manja od 15 karaktera **************************
If Len(IDMM) <> 15 Then

kbr = "Greska u duzini"

Exit Function
End If
' ********************************

' ************* Ako neki od karaktera IDMM ne postoji u Alfastr *******************
For k = 1 To Len(IDMM)
If InStr("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-", Mid(IDMM, k, 1)) = 0 Then
kbr = "Nepoznat karakter"

Exit Function
End If
Next

' *****************************

AlfaStr = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-"

Suma = 0

For i = 1 To Len(IDMM)
AlfaNum = InStr(1, AlfaStr, Mid(IDMM, i, 1)) - 1
Suma = Suma + AlfaNum * (17 - i)
Next i

Check = (36 - ((Suma - 1) Mod 37))

' **************************************************
If Check = 36 Then


idmm1 = Mid(IDMM, 1, 3) & "1" & Mid(IDMM, 5, Len(IDMM))

Suma = 0

For i = 1 To Len(idmm1)
AlfaNum = InStr(1, AlfaStr, Mid(idmm1, i, 1)) - 1
Suma = Suma + AlfaNum * (17 - i)
Next i

Check = (36 - ((Suma - 1) Mod 37))

IDMM = idmm1

End If
' **********************************************

kbr = Mid(AlfaStr, Check + 1, 1)
Alfa1 = IDMM & kbr



kbr = Alfa1

End Function

xxx
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
89.216.49.*

Sajt: www.gowi.rs


+109 Profil

icon Re: Obojiti rezultat funkcije15.04.2019. u 12:15 - pre 60 meseci
Bojenje ćelije je komplikovano preko UDF i primerenije rešenje da se koristi Conditional format da se oboji na osnovu rezultata.

Takođe ja bih razmislio o vraćanju standardnih grešaka (sa #) preko CVERR funkcije jer onda korisnik može da koristi IFERROR i slično da radi sa greškama kako mu je pogodno. Ili još bolje da koristiš validaciju za proveru dužine stringa i da li sadržin neispravan karakter u izvornoj koloni

[Ovu poruku je menjao Jpeca dana 15.04.2019. u 13:54 GMT+1]
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

olvejz
programer
vbinfo
Sarajevo

Član broj: 338328
Poruke: 2
*.telrad.net.



Profil

icon Re: Obojiti rezultat funkcije25.04.2019. u 06:16 - pre 60 meseci
Mnogo hvala #Jpeca, ipak nisam uspio to da rijesim, pa sam napisao makro, koji odradjue sve u jednom potezu.
Pozdrav svima
xxx
 
Odgovor na temu

[es] :: Office :: Excel :: Obojiti rezultat funkcije

[ Pregleda: 975 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.