delne vstote

Pomoč pri izdelavi makrov
Odgovori
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

delne vstote

Odgovor Napisal/-a sonofagun »

pozdravljeni.

potreboval bi pomoč pri izračunu vmesnih vsot. mislim, da je na sliki dovolj jasno za kaj se gre: 1 cona ima trgovine 1, 2 in 3, katera ima vsaka svoje izdelke, podobno je za cono 2 in tako naprej... Vsaka cona ima lahko tudi različno število trgovin, ki lahko imajo različno število izdelkov. v stolpcu D je število kosov izdelka, v stolpcu E cena za enoto izdelka, v stolpcu F pa skupna cena za izdelek (=D*E). Želel bi izračunati vsoto za posamezne cone in jo zapisati v stolpcu F zraven imena. Mislim, da je smiselno da bi to vsoto zapisal kot SUM(območje vse do naslednje cone) in ne kot vsoto posameznih elementov, saj bi mi to omogočalo "osveževanje" vsote, če bi dodajal/brisal samo določene trgovine ali izdelke znotraj cone.

Če bo kakšna ideja, bi mi zelo koristilo.

hvala

lep dan

http://picasaweb.google.com/lh/photo/sM ... directlink
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: delne vstote

Odgovor Napisal/-a admin »

Tako kot imate izdelano tabelo vam Excel (sam!) ne more nič pomagati. Ali ročno vpisujete SUM(xxx) formule v prazne vrstice ali pa vam to naredi makro, tretje opcije ni.

Zna pa Excel natanko to kar želite vi, torej delne vsote, izdelovati sam (in to točno tako, kot želite vi), vendar pa morajo biti podatki v ENI tabeli, torej med njimi ne sme biti praznih vrstic! Takšne podatke sortirate po željenih ključih in zaukažete Excelu naj ob spremembi podatka zapiše delno vsoto. V vašem primeru naj ob spremembi trgovine zapiše delno vsoto in naj ob spremembi cone zapiše delno vsoto.
lp,
Matjaž Prtenjak
Administrator
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Re: delne vstote

Odgovor Napisal/-a sonofagun »

Omenjene funkcije v Excelu ne poznam, bi pa v vsakem primeru želel vse skupaj zapisati v makroju, saj imam že ves preostali del (od urejanja do skupne rekapitulacije) zapisan v makroju. Da bi dobil željeni rezultat sem želel s funkcijo IsNumeric v stolpcu "E" poiskati "prave" celice (1 CONA itd) in potem bi v sosednjem stolpcu pač zapisal pripadajočo vmesno vsoto do naslednje "prave" celice. Če se igram z zankami, brez problema najdem prvo celico, ki ustreza pogoju IsNumeric = False, z naslednjo pa imam težave...

Koda: Izberi vse

vrstica = Range("e65536").End(xlUp).Row
 y = 3
 
 Do While (y < vrstica + 1)
    c = ActiveSheet.Cells(y, 5).Value
    z = IsNumeric(ActiveSheet.Cells(y, 5).Value)
    If (z = False) And (c <> Empty) Then
    ......
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: delne vstote

Odgovor Napisal/-a admin »

sonofagun napisal/-a:...Če se igram z zankami, brez problema najdem prvo celico, ki ustreza pogoju IsNumeric = False, z naslednjo pa imam težave...
In potem morate najtio še naslednjo in naslednjo. Ko jo najdete, si morate zapomniti, kje se je prejšnaj končala in potem med obema zapisati območje, ki vsm bo omogočilo zapisati =SUM(območje)... Torej še kar veliko dela :(...

Priporočam vam, da si pogledate orodje Delne vsote, saj je namenjeno reševenju natanko tega problema. Najdete pa ga na zavihku Podatki/Delne vsote.
lp,
Matjaž Prtenjak
Administrator
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Re: delne vstote

Odgovor Napisal/-a sonofagun »

Mi ni dalo miru (pa tudi nikakor nisem zgruntal tistih Excelovih delnih vsot), pa sem nekaj napisal:

Koda: Izberi vse


Dim podatki(10, 2)

Z = Range("e65536").End(xlUp).Row

'"dodatna vsota"
ActiveSheet.Cells(Z + 2, 5).Value = "Dodatna delna vsota:"
    
zz = Range("e65536").End(xlUp).Row

i = 1

For y = 3 To zz
    c = ActiveSheet.Cells(y, 5).Value
    n = IsNumeric(c)
    
    If (n = False) And (c <> Empty) Then
        
    podatki(i, 2) = y
       
    i = i + 1
    
    End If
  
Next

k = i - 2

For i = 1 To k

   g = podatki(i, 2) + 1
   
   h = podatki(i + 1, 2) - 1
      
   ActiveSheet.Cells(g - 1, 6).Value = "=+SUM(F" & g & ":F" & h & ")"
      
Next

'izbrišem "dodatno vsoto"
Rows(zz).Select
Selection.Delete Shift:=xlUp
Bi prosil za kakšno mnenje (mogoče tudi poenostavitev).

lep pozdrav
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: delne vstote

Odgovor Napisal/-a admin »

Če vam makro deluje tako kot mora potem je vse OK :) Za makro ki se izvede v par sekundah se ne splača obremenjevati in ga piliti...
lp,
Matjaž Prtenjak
Administrator
Odgovori