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

Potreban makro za automatsko sortiranje tabele po više kolona

[es] :: Office :: Excel :: Potreban makro za automatsko sortiranje tabele po više kolona

[ Pregleda: 3918 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

janponican

Član broj: 51479
Poruke: 67
212.200.179.*



+4 Profil

icon Potreban makro za automatsko sortiranje tabele po više kolona12.04.2010. u 00:24 - pre 170 meseci
Potreban mi je makro za automatsko sortiranje tabele po više kolona.
Npr.
- prvo, po "A" koloni (Ascending),
- drugo, po "B" koloni (Ascending), i
- trece, po "C" koloni (Descending).
Molim za pomoć i hvala unapred!

Ne upuštaj se u raspravu sa prostacima. Oni te navuku na njihov nivo, i tu te pobede iskustvom.
Prikačeni fajlovi
 
Odgovor na temu

maliradoznalac
radoznalac, okolina

Član broj: 215676
Poruke: 278
*.dynamic.isp.telekom.rs.



+10 Profil

icon Re: Potreban makro za automatsko sortiranje tabele po više kolona12.04.2010. u 06:59 - pre 170 meseci
ako imas potrebu da sortiras "samo" po tri kolone to mozes iz verzije 2003 postici upotrebom opcije Sort koja se nalazi u Data meniju
 
Odgovor na temu

neptuncokg
Predrag M
racunovodja
Kragujevac

Član broj: 230353
Poruke: 326
212.200.65.*



+9 Profil

icon Re: Potreban makro za automatsko sortiranje tabele po više kolona12.04.2010. u 10:24 - pre 169 meseci
Ako sam dobro razumeo, potreban je macro za sortiranje kolona. Takve stvari se najjednostavnije rešavaju - snimanjem (record) macroa. Uključiš snimanje, odradiš sortiranje po želji, zaustaviš snimanje i zapamtiš urađeno. O snimanju macroa ima na forumu obilje tema, kao i na celom netu. Samo malo potraži...
 
Odgovor na temu

janponican

Član broj: 51479
Poruke: 67
212.200.180.*



+4 Profil

icon Re: Potreban makro za automatsko sortiranje tabele po više kolona13.04.2010. u 22:40 - pre 169 meseci
Citat:
maliradoznalac: ako imas potrebu da sortiras "samo" po tri kolone to mozes iz verzije 2003 postici upotrebom opcije Sort koja se nalazi u Data meniju


Citat:
neptuncokg: Ako sam dobro razumeo, potreban je macro za sortiranje kolona. Takve stvari se najjednostavnije rešavaju - snimanjem (record) macroa. Uključiš snimanje, odradiš sortiranje po želji, zaustaviš snimanje i zapamtiš urađeno. O snimanju macroa ima na forumu obilje tema, kao i na celom netu. Samo malo potraži...


Naveo sam primer sa malom tabelom, medjutim moja tabela sadrži blizu 500 redova i 30 kolona gde imam potrebe za sortiranjem po 5 kolona. Za sada koristim Data/Sort ali zbog čestih izmena moram selektovati celokupnu tabelu i sortirati samo po 3 kolone. No, bez obzira, ipak vam hvala na odgovorima iako mi niste baš pomogli.
pozz
Ne upuštaj se u raspravu sa prostacima. Oni te navuku na njihov nivo, i tu te pobede iskustvom.
 
Odgovor na temu

neptuncokg
Predrag M
racunovodja
Kragujevac

Član broj: 230353
Poruke: 326
212.200.65.*



+9 Profil

icon Re: Potreban makro za automatsko sortiranje tabele po više kolona13.04.2010. u 23:37 - pre 169 meseci
Pa teško je iz tvoje tabele razumeti celu problematiku. Nešto si pobrkao sa "A" kolonom, koja je prazna... Dobro, evo jednog makroa koji ja koristim da sortiram "po nazivu" kolonu "A", a sami tim i ceo dokumenat u opsegu "A1 : F50000". Znači, 50000 redova. Vidi možeš li to da prilagodiš svojim potrebama.

Sub Sortiranje()
'Sortira “dokumenat” po “nazivu”, tj. kolonu “A” u opsegu “A1:F50000”

Application.ScreenUpdating = False

Columns("A:A").Select
Range("A1:F50000").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A1").Select
End Sub

I da se razumemo, nisam ovaj makro sam napisao, već sam ga SNIMIO. Pa ga koristim kao ideju za sva druga sortiranja. Pozdrav.

 
Odgovor na temu

janponican

Član broj: 51479
Poruke: 67
212.200.180.*



+4 Profil

icon Re: Potreban makro za automatsko sortiranje tabele po više kolona14.04.2010. u 00:12 - pre 169 meseci
Citat:
neptuncokg: Pa teško je iz tvoje tabele razumeti celu problematiku. Nešto si pobrkao sa "A" kolonom, koja je prazna... Dobro, evo jednog makroa koji ja koristim da sortiram "po nazivu" kolonu "A", a sami tim i ceo dokumenat u opsegu "A1 : F50000". Znači, 50000 redova. Vidi možeš li to da prilagodiš svojim potrebama.


Nisam ništa pobrkao nego sam kolone potrebne za sortiranje imenovao sa "A" (Ascending), "B" (Ascending) i "C" (Descending), a sortiranje samo po "A" (Ascending) koloni mi ne rešava problem. Da li je moguće dopuniti makro pa da sortira i ostale kolone i to po Ascending-u i Descending-u? Pokušaću to da uradim ali se plašim da je to ipak malo komplikovanije a nisam ni stručan za pisanje makroa. Ipak hvala.
pozz
Ne upuštaj se u raspravu sa prostacima. Oni te navuku na njihov nivo, i tu te pobede iskustvom.
 
Odgovor na temu

neptuncokg
Predrag M
racunovodja
Kragujevac

Član broj: 230353
Poruke: 326
212.200.65.*



+9 Profil

icon Re: Potreban makro za automatsko sortiranje tabele po više kolona14.04.2010. u 10:55 - pre 169 meseci
Ovaj makro je samo primer, ali podložan promenama i prilagođavanju.
1) Ako hoćeš da sortiraš po "B" ili "C" koloni, u makrou promeni Columns("A:A").Select, u - ...("B:B"), ili u ("C:C"), itd
2) I u nastavku ...Range("A2"), u - ("B2"), ("C2"), itd
3) U delu makroa ..."xlAscending", u - ..."xlDescending" (po želji)

I nema razloga za strah od greške, jer i ako pogrešiš vba će ti ukazati na grešku, a sa F1 ulaziš u najbolji help na svetu. Pozdrav
 
Odgovor na temu

timmy
Jovan Timotijevic

Moderator
Član broj: 37087
Poruke: 634

Sajt: www.e-tim.net


+89 Profil

icon Re: Potreban makro za automatsko sortiranje tabele po više kolona14.04.2010. u 11:08 - pre 169 meseci
Kao sto je neptuncokg rekao funkcija kakva tebi treba moze da se SNIMI.
Pa recimo sortiranje po prvih 6 kolona u rastuci niz bi bila:

Code:
Sub SortBy6Columns()
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2:A22") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B2:B22") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("C2:C22") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("D2:D22") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("E2:E22") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("F2:F22") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    
   With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("A1:L22")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub


Obrati paznju da se ovde vrsi dodavanje (.Sort.SortFields.Add Key) za svako naredno sortiranje
pa tako 6 puta za svaku kolonu po kojoj treba da se zada kriterijum sortiranja, a tek zatim kada
se svi uslovi zadaju tek tada se poziva komanda za sortiranje tabele. Takodje obrati paznju na
to da sam se ja igrao sa tabelom koja ima 22 reda i da adekvatno promenis ovu brojku.

Pozdrav
 
Odgovor na temu

janponican

Član broj: 51479
Poruke: 67
212.200.180.*



+4 Profil

icon Re: Potreban makro za automatsko sortiranje tabele po više kolona15.04.2010. u 15:43 - pre 169 meseci
Hvala vam. Probaću da uradim po datim instrukcijama i javiću kakav je rezultat.
pozz
Ne upuštaj se u raspravu sa prostacima. Oni te navuku na njihov nivo, i tu te pobede iskustvom.
 
Odgovor na temu

[es] :: Office :: Excel :: Potreban makro za automatsko sortiranje tabele po više kolona

[ Pregleda: 3918 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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