ok proviamo a usare le macro...
Ho registrato la macro facendo su un foglio il filtro su una colonna... I dati estratti li ho copiati selezionando un intervallo di celle. Sono passato ad un altro foglio dove ho selezionato l'area, incollato e ordinato per una determinata colonna.
Dovrei ripetere la procedura per lo stesso foglio origine e 8 fogli destinazione diversi.
La sintassi generata è la seguente:
Sub Macro2()
'
' Macro2 Macro
'
' Scelta rapida da tastiera: CTRL+MAIUSC+A
'
ActiveSheet.Range("$A$1:$Y$5000").AutoFilter Field:=21, Criteria1:= _
"CRISTIAN"
Range("A5:V5030").Select
Selection.Copy
Sheets("CRISTIAN").Select
Range("A2:R38").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("CRISTIAN").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("CRISTIAN").Sort.SortFields.Add Key:=Range("P2:P32" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("CRISTIAN").Sort
.SetRange Range("A2:R32")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
La seconda istruzione (Range("A5:V5030").Select) non funziona bene perchè in base al dato usato per filtrare a volte si deve prendere un range che parte da A3 a volte da A4 a volte da A7 etc...
Non sono riuscito a trovare sintassi soddisfacente.
Non volevo usare macro perchè volevo evitare di obbligare il compilatore a premere bottoni per copiare i dati dal foglio mittente ai destinatari ma volevo rendere automatica la copia ad ogni modifica di qualsiasi cella.
Grazie.