Stránka 1 z 1
Excel-makro VBA zoradenie
Napsal: 08 dub 2008 11:40
od marek26
Tu na tomto kode vidite zoradenie buniek podla stl. "C", tam sa mi ale dalo (6.-ty riadok) Range C2:C27, a zase ked pozriete niz je Range(A1:F27), lenze tab. bude variabilna neda sa prosim Vas nahradit tieto pevne ohranicenia na inu syntax aby to zoradovalo tak ako je velka tab.? Este chcem upozornit ze oznacit treba celu tab. aby zoradovalo vsetko, aby to nebolo pomiesane.
ak by sa dalo, len nahradit Range syntax inym kodom
dakujem vam
Kód: Vybrat vše
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
ActiveWorkbook.Worksheets("bratislava").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("bratislava").Sort.SortFields.Add Key:=Range( _
"C2:C27"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("bratislava").Sort
.SetRange Range("A1:F27")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Re: Excel-makro VBA zoradenie
Napsal: 08 dub 2008 12:42
od mike007
Jelikož nemám dokument ve kterém bych to vyzkoušel, tak hold kouzlím. Vyzkoušej to. Nemusí to ale fungovat korektně...
Kód: Vybrat vše
Sub test()
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
ActiveWorkbook.Worksheets("bratislava").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("bratislava").Sort.SortFields.Add Key:=Range( _
Cells(.Row, "C")), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("bratislava").Sort
.SetRange Range(Cells(.Row, "A"), Cells(.Row, "F"))
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Re: Excel-makro VBA zoradenie
Napsal: 08 dub 2008 14:14
od marek26
rychla reakce vdaka
no takto, zastavilo to na .Row tam sa to oznacilo,je to ten prvy prikaz co si menil samozrejme na druhy prikaz co si menil to uz nepreslo. A Vypisalo tuto hlasku: compile eror
invalid or unqualified reference
tam asi nieco bude treba dopisat
inak je to obyc. tab od stlpca A1 po F1
riadkov ma 29 a to vzdy neplati zajtra moze byt riadkov 15 (85 atd.) treba ju najprv oznacit a zoradit podla "C" tak ako je v kode napisane len ten rozsah co ta prosim o pomoc mi nejde
Re: Excel-makro VBA zoradenie
Napsal: 08 dub 2008 14:50
od mike007
Jasně. Bude tam column, ne row. Občas se mi to plete
Každopádně i tak nevím, zda to bude korektně fungovat. Lepší když sem vložíš dokument s fiktivními daty a já si to v něm budu moci vyzkoušet než ti makro pošlu.
Re: Excel-makro VBA zoradenie
Napsal: 08 dub 2008 15:06
od mike007
Když teď tak přemýšlím... Nestačilo by to prostě jenom takto?
Kód: Vybrat vše
sub sort()
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
ActiveWorkbook.Worksheets("bratislava").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("bratislava").Sort.SortFields.Add Key:=Range( _
"C2"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("bratislava").Sort
.SetRange Range("A:F")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Proč to dělat složitě.
Re: Excel-makro VBA zoradenie
Napsal: 08 dub 2008 15:14
od Jenda70
Pouzij pro zjisteni velikosti tabulky row (Column) a potom vztvor Range z cisel radku a sloupcu
Trebas takhle pomocne promenne xx a yy:
xx = Selection.Rows.Count
yy = Selection.Column.Count
Potom je sloupec C range(cells(1,3),cells(xx,3))
Cele potom trebas range(cells(1,1),cells(xx,yy)) nevim jak je cela tabulka velika.
Rozhodne me prijde lepsi pouzivat pro souradnice bunek v VBA cisla nez pismenka jako v XLS listech. Da se s nimi lepe manipulovat a vytvaret promenne oblasti (Range).
Re: Excel-makro VBA zoradenie
Napsal: 08 dub 2008 15:17
od mike007
Svatá pravda, Jendo

Re: Excel-makro VBA zoradenie
Napsal: 08 dub 2008 15:36
od cauli
Zkuste použít tohle:
Mohlo by to funfovat jak potřebujete.
Kód: Vybrat vše
Sub pokus()
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
ActiveWorkbook.Worksheets("bratislava").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("bratislava").Sort.SortFields.Add Key:=Range( _
("C:C")), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("bratislava").Sort
.SetRange Range("A:F")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Re: Excel-makro VBA zoradenie
Napsal: 08 dub 2008 16:02
od marek26
us to de, dakujem vam
posledny riadok su sumy aj te mi setridi, posledny sumarny riadok by mel zostat namieste . Ide to urobit aj tak, ze posledny sumarny riadok zostane na mieste? a ostatne setridit........
vdaka
Re: Excel-makro VBA zoradenie
Napsal: 08 dub 2008 16:07
od cauli
Nejlehci moznost asi bude posunout sumu o jeden radek niz ale nevim jestli to tak bude fngovat, budu to muset zkusit.
Re: Excel-makro VBA zoradenie
Napsal: 08 dub 2008 16:52
od Jenda70
NEBO NAPIS:
xx = Selection.Rows.Count-1

Re: Excel-makro VBA zoradenie
Napsal: 08 dub 2008 17:06
od marek26
diky slape to