Šta je novo?

Excel+sortiranje+vba

chundra

Čuven
Učlanjen(a)
31.12.2003
Poruke
152
Poena
619
Potreban mi je jednostavan makro koji ce vrsiti sortiranje po koloni "Ime i Prezime".
Tabele koje bih sortirao na taj nacin imaju vec definisano zaglavlje "Ime i Prezime" ali se od slucaja do slucaja razlikuje polozaj tog polja.
Nekad je ono na poziciji "E1" nekad "G1" tj "xy1" u zavisnosti od broja kolona date tabele.

Ovako izgleda VBA kod koji se generisao putem "record macro" opcije:
Cells.Select
Selection.Sort Key1:=Range("e1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Pokusao sam da promenim vrednost "key1" sa "e1" na "Ime i Prezime" ali to ne radi.
 
Sub Sortiranje()
'
' Sortiranje Macro
' Macro на брзака 06.02.2007 by CyberGasty
'

'
Cells.Find(What:="Ime i Prezime", After:=Activecell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

'овде уместо "A1:F9" промени опсег преме својој табели

Range("A1:F9").Sort Key1:=Activecell, Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

Ово би требало да ради посао.
 
Ok, ovo mi je posluzilo.
Stim sto sam Range("A1:F9") promenio na neki proizvoljan, dovoljno velik tako da svaka od tabela koje trebaju da se sortiraju staje u njega.

Da li je moguce prevazici ovo tako sto ce umesto Range stajati selektovan ceo worksheet, ili jos bolje selektovana samo tabela ? Verujem da se tako nesto moze definisati posto u excelu vec postoji shorcut crtl+home tj crtl+end, sto nas dovodi na pocetak tj kraj same tabele.
 
Sub Sortiranje()
'
' Sortiranje Macro
' Macro мале измене 08.02.2007 by CyberGasty

'
'Онда дефиниши опсег који почиње од А1 и иде докле год имаш ћелије које нису празне

Set Opseg = Range("A1").CurrentRegion

Cells.Find(What:="Ime i Prezime", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate


Opseg.Sort Key1:=ActiveCell, Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

Пробао сам на малој табели и ради. Провери да ли ти ово ради посао.

* а било је тако једноставно од почетка, само се требало сетити "CurrentRegion"
 
* а било је тако једноставно од почетка, само се требало сетити "CurrentRegion"

Ja bih prvo trebao da naucim, kasnije cu da se "secam".

Inace ovo savrseno odradjuje posao.
Dodao sam jos samo da griduje tabelu.

Hvala
 
Nazad
Vrh Dno