[ somicom @ 26.03.2011. 07:43 ] @
Ljudi,

treba da odredjene podatke iz 150 sheet-ova (identicnih, samo se imena razlikuju) slozim u jedan zbirni sheet.

U prilogu je primer kako bi trebalo da izgleda. Ovako kako sam ja probao, trebalo bi mi 100 godina da zavrsim. Molim vas da pomognete i predlozite neki brzi nacin ako postoji.

Hvala
[ branisllav @ 26.03.2011. 08:15 ] @
Postoji način da sabereš gomilu radnih listova.

Recimo da ih nazoveš redom 1,2,3 ... do 150.

Suma koja ti treba dobija se formulom =SUM('1:150'!B3) gde je B3 polje u svakom radnom listu koje sadrži vrednost.
Imenovanje radnih listova može biti i druga čije, na primer prvi, drugi, treći .... poslednji pa bi formula glasila

=SUM('prvi:poslednji'!B3)

Bitna stvar je da van ovog opsega koji staviš u zagradu možeš imati još radnih listova, sabiraju se samo oni u opsegu koji si zadao - dakle ne bi ti sabrao radni list 151 ili veći.
[ timmy @ 26.03.2011. 08:20 ] @
Dodaj novi modul i ubaci sledecu proceduru

Code:

Public Sub PokupiOdgovore()
Dim sh As Variant
    For Each sh In ActiveWorkbook.Sheets
        If sh.Name <> "zbir" Then
            Range("zbir!a" & sh.Index + 4).Value = Right(sh.Name, Len(sh.Name) - 4)
            Range("zbir!b" & sh.Index + 4).Value = sh.Range("B5")
            Range("zbir!c" & sh.Index + 4).Value = sh.Range("B21")
            Range("zbir!d" & sh.Index + 4).Value = sh.Range("B33")
        End If
    Next sh
End Sub


Pozdrav

[Ovu poruku je menjao timmy dana 26.03.2011. u 10:11 GMT+1]
[ somicom @ 26.03.2011. 08:37 ] @
Jaoooo, hvala timmy. Ovo je to sto mi treba. Nadam se da u Macro-u mogu promeniti B5, B21, B33 i dodati jos posto je tabela iz priloga samo primer. Originalna mi ostala na poslu. Kao sto rekoh imam oko 150 opstina i za svaku po nekih 15 odgovora.


branisllav:
Izvinjavam se jer sam ocigledno pogresno formulisao pitanje. Ne treba mi zbir rezultata...nego da odredjene rezultate uz vise sheet-ova preslikam u jedan Sheet koji se samo zove zbirni. Ali hvala ti u svakom slucaju jer ce mi i ovo nekad trebati.

Pozdrav ljudi i hvala vam.
[ branisllav @ 26.03.2011. 08:51 ] @
Možda sam i ja loše razumeo pitanje :), u svakom slučaju bitno je da si rešio problem, pozdrav.
[ EmmaR @ 26.03.2011. 22:44 ] @
Hvala.

Eh, da sam ovo znala pre nekih godinu dana - namučih se živa, a tek nesigurni linkovi u formulama, a sve treba da bude 200% tačno. Bilo je i sabiranja i zbirnog prikazivanja.
Sreća pa je bilo SAMO do 50 listova za povezivanje.
Citat:
branisllav: Postoji način da sabereš gomilu radnih listova.

Recimo da ih nazoveš redom 1,2,3 ... do 150.

Suma koja ti treba dobija se formulom =SUM('1:150'!B3) gde je B3 polje u svakom radnom listu koje sadrži vrednost.
Imenovanje radnih listova može biti i druga čije, na primer prvi, drugi, treći .... poslednji pa bi formula glasila

=SUM('prvi:poslednji'!B3)

Bitna stvar je da van ovog opsega koji staviš u zagradu možeš imati još radnih listova, sabiraju se samo oni u opsegu koji si zadao - dakle ne bi ti sabrao radni list 151 ili veći.


Može da se ide i preko insert function, pa odabere se Sum a za unos prvog broja se pozicionira u odgovarajuće polje u prvom listu, pritisne se taster Shift i pozicionira se u poslednji list u nizu. Ne moraju da budu slični nazovi nizova (važi i za modul koji je Timmy predložio), bitan je opseg - prvi i poslednji u nizu.

Citat:
timmy: Dodaj novi modul i ubaci sledecu proceduru

Code:

Public Sub PokupiOdgovore()
Dim sh As Variant
    For Each sh In ActiveWorkbook.Sheets
        If sh.Name <> "zbir" Then
            Range("zbir!a" & sh.Index + 4).Value = Right(sh.Name, Len(sh.Name) - 4)
            Range("zbir!b" & sh.Index + 4).Value = sh.Range("B5")
            Range("zbir!c" & sh.Index + 4).Value = sh.Range("B21")
            Range("zbir!d" & sh.Index + 4).Value = sh.Range("B33")
        End If
    Next sh
End Sub


Pozdrav

[Ovu poruku je menjao timmy dana 26.03.2011. u 10:11 GMT+1]



ovo komentarišem iz razloga , što sam se malo namučila.

U pitanju je klasičan makro, a ne f-ja, koji mora da se poziva stalno. Ja sam postavila jedno komadno dugme, preko koga ga pozivam.

Da li može da se preciznije definiše opseg, da ne obuhvata sve listove koji se ne zovu zbir, tj. da se nekako naznače prvi i poslednju list u nizu, a sve ostalo da zanemari ???


-------

Za OpenOffice.

=SUM(<naziv prvog sheet-a u nizu>.<ćelija>:<naziv drugog sheet-a u nizu>.<ćelija>)

Nisam otkrila da li postoji nešto lakši način, neka prečica.


Edit: Tagovi

[Ovu poruku je menjao 3okc dana 27.03.2011. u 00:18 GMT+1]
[ 3okc @ 26.03.2011. 23:45 ] @
Citat:
EmmaR: Da li može da se preciznije definiše opseg, da ne obuhvata sve listove koji se ne zovu zbir, tj. da se nekako naznače prvi i poslednju list u nizu, a sve ostalo da zanemari ???


Za definisanje 3D-opsega nije važno kako smo nazvali listove - za Excel su nazivi lišeni značenja. To što smo im zgodno dodelili brojeve - pojedini čak ne dozvoljavaju da bude išta osim broja u nazivu lista, samo je zgodna konvencija kojom sebi olakšavamo snalaženje. (Ili to makar pokušavamo.) Excel u svakom slučaju imena listova tretira kao tekst.

Ono što Excel-u omogućuje da kreira 3D-opseg nije dakle razumevanje relacije "manje od" i "veće od" među nazivima listova nego razumevanje koji je list "prvi" a koji "poslednji". Svi listovi koji se nađu između, ulaze u opseg. Na tebi je samo da organizuješ redosled.

[Ovu poruku je menjao 3okc dana 27.03.2011. u 01:06 GMT+1]