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 :oops:
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 :smile:

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

:listen:

Re: Excel-makro VBA zoradenie

Napsal: 08 dub 2008 17:06
od marek26
diky slape to