View Single Post
  #1 (permalink)  
Vecchio 04-01-2009, 10:09 AM
Marcello_DF Marcello_DF non è in linea
Junior Member
 
Registrato dal: Apr 2009
Messaggi: 1
predefinito Excel - metodo sort in excel pre 2007

Ciao a tutti, spero che qualcuno possa darmi una mano.
Premetto che non sono esperto di excel, almeno a livello di vba....mi è arrivato un file excel prodotto con office 2007, nel quale sono presenti della macro, probabilmente registrate e non scritte manualmente, in cui è presente il metodo sort non supportato da versioni di excel precedenti al 2007. Il problema è che non capisco cosa faccia questa macro, quindi non posso neanche riprovare a registrarla nuovamente con un'altra versione di excel...provo a posare il codice:

ActiveSheet.Unprotect
Range("Z77:Z83").Select
Selection.Copy
Range("N87").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Nome Scheda").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Nome Scheda").Sort.SortFields.Add _
Key:=Range("N87"), SortOn:=xlSortOnValues, Order:=xlDescending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Nome Scheda").Sort
.SetRange Range("N87:N93")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWindow.SmallScroll Down:=15
Range("Z96:Z102").Select
Selection.Copy
Range("N106").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Nome Scheda").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Nome Scheda").Sort.SortFields.Add _
Key:=Range("N106"), SortOn:=xlSortOnValues, Order:=xlDescending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Nome Scheda").Sort
.SetRange Range("N106:N112")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("S100").Select
Dim rng As Range
Dim Ceck As Range
Application.ScreenUpdating = False
Cells.Select
Selection.EntireRow.Hidden = False
Range("a72").Select '
Set rng = Range("a58:a64")
For Each Ceck In rng
If Ceck.Value = 0 Then
Ceck.EntireRow.Hidden = True
End If
Next
Set rng = Nothing
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False
ActiveWindow.SmallScroll Up:=30
Range("g61").Select

Grazie, Marcello

Ultima modifica di Marcello_DF; 04-01-2009 a 03:15 PM
Rispondi quotando