Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao MecFala,
sto litigando con una macro che nelle versioni recenti di excel funziona correttamente ma su un pc con qualche anno sulle spalle (s.0 win7) e office/excel 2003 sp3 mi da errore (si apre l'editor VBA con questo messaggio:impossibile trovare il metodo o il membro dei dati!).
La macro parte sull' evento "deactivate" di un foglio.
Allego la macro:
Private Sub Worksheet_Deactivate()
Application.ScreenUpdating = False
Dim SH As Worksheet
Dim lRiga As Long
Set SH = ThisWorkbook.Worksheets("ElencoDitte")
lRiga = SH.Range("A" & Rows.Count).End(xlUp).Row
With SH.Sort
.SortFields.Clear
.SortFields.Add Key:=Range("A1:A" & lRiga) _
, SortOn:=xlSortOnValues, _
Order:=xlAscending, _
DataOption:=xlSortNormal
.SetRange Range("A1:A" & lRiga)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Set SH = Nothing
Application.ScreenUpdating = True
End Sub
Avete osservazioni/suggerimenti?
con la macro devo semplicemente (si fa per dire) riordinare (ordine alfabetico) un foglio che contine per ogni riga i dati di alcune ditte (circa 130 nominativi) quando ne aggiungo una nuova.
La proprietà Worksheet.Sort è stata introdotta con Excel 2007. Per rendere la procedura compatibile sia con Excel 2003 che versioni successive, prova la seguente versione:
'=========>>
Option Explicit
'--------->>
Private Sub Worksheet_Deactivate()
Dim Rng As Range
Dim lRiga As Long
With Me
lRiga = .Range("A" & Rows.Count).End(xlUp).Row
Set Rng = .Range("A1:A" & lRiga)
End With
On Error GoTo XIT
Application.ScreenUpdating = False
With Rng
.Sort Key1:=.Cells(2), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End With
XIT:
Application.ScreenUpdating = True
End Sub
'<<=========
===
Regards,
Norman