Prikazi cijelu temu 02.02.2018 11:20
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Lokacija:zagreb


Predmet:Re: dobro jutro, dobar dan...
Dobro jutro!

Bas gledam ovu funkciju VBA funkcija Saberi

stavim ja vrijednosti u celije:
A
11
2Dobar dan
33
412:33
52.2.2018
6-10
79,2

stavim modul i upisem:
PreuzmiIzvorni kôd (Text):
  1. Sub proba()
  2.     Dim rng As Range
  3.     Set rng = Range(Cells(1, 1), Cells(9, 1))
  4.     MsgBox Saberi(rng)
  5. End Sub

PreuzmiIzvorni kôd (Text):
  1. Function Saberi(Region As Range)
  2. '********************************************
  3. 'Sabiranje celija sa provjerom dali je u
  4. ' celiji numericka vrijedost
  5. '********************************************
  6.     Dim Celija As Range
  7.     Dim Suma As Double
  8.     Dim Vrijednost As Double
  9.     Dim Vrs As String
  10.     On Error Resume Next
  11.     For Each Celija In Region.Cells
  12.         Vrs = Celija.Value
  13.         Vrijednost = Celija.Value
  14.         If Len(Vrs) = Len(Format$(Vrijednost)) Then
  15.             Suma = Suma + Vrijednost
  16.         Else
  17.             MsgBox "Vrijednost u polju" & vbCr _
  18.                     & Celija.Address & vbCr _
  19.                     & "Nije numericka"
  20.             Celija.Select
  21.             Exit Function
  22.         End If
  23.     Next Celija
  24.     Saberi = Suma
  25. End Function

Javilo mi gresku nailaskom na celiju sa vrijednosti "Dobro jutro" runtime error 14 type mismas Vrijednost

Pomislio sam da sam opet nesto pravopisno s**** pa mi ne radi. Stavio sam usklicnik !, a zatim . (tocku), pa sam probao sve napisati malim slovima ali nista.
Onda sam stavio on error resume next u funkciju odmah poslije dim
i pokazalo mi je da celija A2 nije broj. Nakon toga izade iz funkcije i ne zbroji ostalo i ne prikaze sumu.

Nista, bilo mi red malo to preurediti za svoje potrebe, ali prije toga bi htio reci da imamo u excelu IsNumber, a u VBA IsNumeric, ne rade istu stvar na isti nacin.

VrijednostVBA IsNumericExcel IsNumber
1TrueTrue
Dobar danFalseFalse
3TrueTrue
12:33TrueTrue
2.2.2018FalseTrue
-10Truetrue
9,2TrueTrue

Vidimo da ce za datum Excelova IsNumber dati True dok VBA nece, a meni treba True pa sam upotrijebio i excelovu IsNumber->Application.WorksheetFunction.IsNumber(Value)

evo kako sam to napisao:

PreuzmiIzvorni kôd (Text):
  1. Sub proba()
  2.     Dim rng As Range
  3.     Set rng = Range(Cells(1, 1), Cells(9, 1))
  4.     MsgBox Saberi(rng)
  5. End Sub
  6. Function Saberi(Region As Range)
  7. '********************************************
  8. 'Sabiranje celija sa provjerom dali je u
  9. ' celiji num,ericka vrijedost
  10. '********************************************
  11. Dim Celija As Range
  12. Dim Suma As Double
  13. Dim Vrijednost As Double
  14.  
  15. For Each Celija In Region.Cells
  16.     If isBroj(Celija.Value) = True Then
  17.         Vrijednost = Celija.Value
  18.         Suma = Suma + Vrijednost
  19.     End If
  20. Next Celija
  21. Saberi = Suma
  22. End Function
  23.  
  24. Function isBroj(ByVal Value As String) As Boolean
  25.     If IsNumeric(Value) = False And Application.WorksheetFunction.IsNumber(Value) = False Then
  26.             isBroj = False
  27.     ElseIf IsNumeric(Value) = False And Application.WorksheetFunction.IsNumber(Value) = True Then
  28.         isBroj = True
  29.     Else
  30.         isBroj = True
  31.     End If
  32. End Function

Naravno, mozda ja nisam shvatio bit te funkcije ni nacin kako se ona upotrebljava, ali meni nije radila.
E sada sta ce iz nje biti neznam, ali znam da je proslo 10 sati a meni nitko ne zvoni dva puta.

THE POSTMAN ALWAYS RINGS TWICE, 1981., SAD, Zapadna Njemačka, 122 min.
Roman PoÅ¡tar uvijek zvoni dvaput jednog od glavnih predstavnika tzv. tvrdokuhane kriminalističke proze, Jamesa M. Caina, doživio je nekoliko filmskih prilagodbi. Prvu je 1939. napravio Francuz Pierre Chenal pod naslovom "Le dernier tournament", potom je 1943. slavni Luchino Visconti debitirao drugom verzijom nazvanom "Opsesija" (1946) je napokon i Hollywood realizirao svoju inačicu pod originalnim naslovom, pod kojim je i Bob Rafelson (Pet lakih komada, Kralj Marvinovih vrtova, Crna udovica) 1981. ostvario svoju, danaÅ¡njim gledateljima najpoznatiju verziju.

Amerika u doba ekonomske depresije ranih tridesetih godina. Lutalica kriminalne proÅ¡losti Frank Chambers (J. Nicholson) zaposli se kod vlasnika malog restorana uz cestu, Grka Nicka Papadakisa (J. Colicos), oženjenog s puno mlađom i vrlo privlačnom Corom (J. Lange). Cora i Frank ubrzo se upuste u strastven seksualni odnos te postaju ljubavnici. Kako vrijeme prolazi, a njihova veza jača, odluče likvidirati Nicka te njegovu smrt prikazati kao posljedicu prometnog udesa...

Rafelsonov film odlikuje se dojmljivom rekonstrukcijom razdoblja, elegantnom režijom te naturalističkom autorskom distancom i prizorima seksa i nasilja, kao i vrhunskim glumačkim izvedbama maestralnog para Jack Nicholson - Jessica Lange, kojeg vrsno podupire ostatak glumačke ekipe u sporednim ulogama. Spomenimo i da je scenarističku adaptaciju Cainova romana potpisao ugledni dramatičar i filmaÅ¡ David Mamet (Kuća igara).


zivot je moja domovina.