VA e ordinare celle relativamente in Excel 2007

lunedì 24 dicembre 2007 - 22.11

ghisirds Profilo | Junior Member

Salve,
VA stava poi per VBA, comunque...
con Excel 2003 ero abituato a selezionare con una macro l'intervallo di celle che volevo ordinare e poi scrivere qualcosa del genere:

Rows("2:2").Select
Range("F2").Activate
Range(Selection, Selection.End(xlDown)).Select

Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Key2:=Range("k1") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormal

Ora, con la versione 2007, la faccenda è un po' cambiata, e la stessa operazione viene registrata più o meno così, nonostante io la registri utilizzando i riferimenti relativi:

Range("F2").Select
ActiveCell.Rows("1:1").EntireRow.Select
ActiveCell.Activate
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Worksheets("Statistiche").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Statistiche").Sort.SortFields.Add Key:=ActiveCell. _
Offset(0, 2).Range("A1:A351"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Statistiche").Sort.SortFields.Add Key:=ActiveCell. _
Offset(0, 10).Range("A1:A351"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Statistiche").Sort
.SetRange ActiveCell.Range("A1:BQ351")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Il problema è, come si può vedere, che la macro è piena di riferimenti sia al foglio che alla quantità di righe selezionate, ma non va bene perchè il loro numero può variare (il numero di righe selezionate indendo).

Come si può adattare quindi questa macro per far si che ordini le righe selezionate indipendentemente dalla loro quantità e dal foglio in cui si trovano?

Grazie mille

__________________
http://www.idee-regalo.biz/ - http://www.giftideashop.net/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5