[ Siki 5 @ 12.11.2016. 08:02 ] @
Problem naveden u prilogu. Hvala ljudima koji žele da pomognu.
[ 3okc @ 12.11.2016. 08:20 ] @
Ako bi bio ljubazan da pitanja pišeš na forumu a NE u prikačenim fajlovima. Ja npr nemam nameru da otvaram fajl zbog toga.
[ Siki 5 @ 12.11.2016. 09:49 ] @
Primedba prihvaćena.Pritiskom na taster F9 funkcija bira brojeve u svih 6 ćelija u koloni B. Da li je moguće da se funkcija primeni samo na pojedinačnu ćeliju odnosno kada želim proizvoljan izbor broja u ćeliji B1 da se u ostalim ćelijama ne obavi isti proces. Isto bi trebalo da važi i za ostale ćelije u koloni B.







[ djoka_l @ 12.11.2016. 10:52 ] @
Ne može.
Formule se preračunavaju svaki put kada se promeni sheet, pa onda se vrati i novi slučajni broj. Ako ti treba da se jednom izračuna, kopiraj iz kolone u kojoj je funkcija SAMO vrednosti u neku drugu kolonu, pa time praviš trenutnu sliku. Druga opcija je da se zabrani automatska rekalkulacija na šitu (ali onda neće preračunavati ni jednu formulu, dok mu ne kažeš, a kad zahtevaš rekalkulaciju promeniće se sve vrednosti RND funkcije).
[ 3okc @ 12.11.2016. 12:15 ] @
Kao što djoka_l kaže - ne može, odnosno, samo uz sopstveno pisanu RND f-ju, tj preko VBA.
Code:

Option Explicit

Function MyRND() As Double
Dim hold As Double
Dim CallerAddr As String
Dim MySel As Range
Dim Cl As Range

    CallerAddr = Application.Caller.Address
    Set MySel = Intersect(Selection, Range(CallerAddr))
    If MySel Is Nothing Then
        hold = Range(CallerAddr).Value
        MySel = hold
        Exit Function
    Else:
        For Each Cl In MySel.Cells
            MyRND = Rnd
        Next Cl
    End If
End Function

Osvežavanje radi sa Alt+F9, jer nije rečeno da f-ja bude "volatilna", tj da se preračunava svaki put.
[ Siki 5 @ 12.11.2016. 13:33 ] @
Meni ovo ne funkcioniše. Lepio sam kod i u radnoj knjizi i u radnom listu ali se ništa ne menja. Funkcija radi na isti način, menja vrednost u svim ćelijama. Verovatno ja tu nešto pogrešno radim . Ako može pojašnjenje koda u vezi dvostrukog klika i ćelije C1 .Meni dvostruki klik na ćeliju C1 i prelaz u drugu ćeliju menja vrednosti u svim ćelijama. Da li treba primeniti neki drugi postupak za aktiviranje funkcije preko ovog koda ? Hvala.
[ 3okc @ 12.11.2016. 13:58 ] @
Funkcije idu u poseban modul i koristiš ih kao i svaku drugu, u ćeliju upišeš =MyRND() (u ovom slučaju)
[ Ivek33 @ 12.11.2016. 14:38 ] @
Citat:
Da li je moguće da se funkcija primeni samo na pojedinačnu ćeliju odnosno kada želim proizvoljan izbor broja u ćeliji B1 da se u ostalim ćelijama ne obavi isti proces.
Vidi da li ti pomaže link
- How do I refresh a formula on selected number of cells in excel without refreshing the whole workbook?
[ Siki 5 @ 14.11.2016. 12:48 ] @
Ovo ne funkcioniše. Najpre radi se o funkciji RAND,a ne o RANDBETWEEN. Da li postoji skraćenica za funkciju RANDBETWEEN pa da se eventualno to ukuca u kod umesto MyRND(). Ova funkcija ne može da se osveži sa alt + F9. Radi samo posle dvostrukog klika na C1 pa enter. Ili ja tu nešto pogrešno radim. Hvala.



[ 3okc @ 14.11.2016. 13:00 ] @
Ne znam, kod mene radi, čak i samo sa F9 sada.

RAND sam koristio kao prostiju varijantu jer je poenta bila videti radi li uopšte proračun samo na obeleženim ćelijama.. a to, koju ćeš formulu, lako može naknadno da se podesi. Npr:

Code:

Option Explicit

Function MyRND(ilower As Integer, iupper As Integer) As Double
Dim CallerAddr As String
Dim MySel As Range
Dim hold As Double

    CallerAddr = Application.Caller.Address
    Set MySel = Intersect(Selection, Range(CallerAddr))
    If Not MySel Is Nothing Then
        MyRND = Application.RandBetween(ilower, iupper)
    Else:
        hold = CDbl(Range(CallerAddr).Value)
        MyRND = hold
    End If
End Function

Naravno, sada će i MyRND zahtevati ulazne veličine, kao RANDBETWEEN.
[ Siki 5 @ 14.11.2016. 16:38 ] @
Sa ovim kodom radi i kod mene ali se javlja novi problem kada se funkcija primeni na ostalih 5 ćelija. U ovom slučaju prijavljuje kružnu referencu valjda zato što se funkcija ne vezuje za konkretnu ćeliju nego je ista u svim ćelijama. Ako je moja pretpostavka tačna da li je onda moguće nešto kao MyRND(A1)6;10).Znam da je ovako kako sam napisao nemoguće ali nešto slično tome. Hvala.