Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Potreban makro za automatsko sortiranje tabele po više kolona

  • 8 odgovora
  • 5.062 pregleda

Najnovija ↓

Potreban makro za automatsko sortiranje tabele po više kolona 12.04.2010. u 01:24 · pre 201 mesec #1
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!
Potpis
Ne upuštaj se u raspravu sa prostacima. Oni te navuku na njihov nivo, i tu te pobede iskustvom.
Re: Potreban makro za automatsko sortiranje tabele po više kolona 12.04.2010. u 11:24 · pre 201 mesec #3
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...
Re: Potreban makro za automatsko sortiranje tabele po više kolona 13.04.2010. u 23:40 · pre 201 mesec #4
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
Potpis
Ne upuštaj se u raspravu sa prostacima. Oni te navuku na njihov nivo, i tu te pobede iskustvom.
Re: Potreban makro za automatsko sortiranje tabele po više kolona 14.04.2010. u 00:37 · pre 201 mesec #5
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.

Re: Potreban makro za automatsko sortiranje tabele po više kolona 14.04.2010. u 01:12 · pre 201 mesec #6
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
Potpis
Ne upuštaj se u raspravu sa prostacima. Oni te navuku na njihov nivo, i tu te pobede iskustvom.
Re: Potreban makro za automatsko sortiranje tabele po više kolona 14.04.2010. u 11:55 · pre 201 mesec #7
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
Re: Potreban makro za automatsko sortiranje tabele po više kolona 14.04.2010. u 12:08 · pre 201 mesec #8
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
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme