Buongiorno a tutti.
E' da molto tempo, ( ho provato anche sulla community Inglese, ma senza risultato) che sto lavorando ad una procedura VBA per Excel che mi permetta di automatizzare le seguenti operazioni:
- Filtrare i dati da un Foglio MASTER (cioè principale e che contiene dati su più colonne) applicando il Filtro alla colonna J ( la quale riporta l'indicazione di più materie es. ITALIANO-STORIA e cosi via);
- Ordinare i dati in ordine crescente sempre tenendo presente la stessa colonna (J);
- copiare un tot nr. di righe delle materie (appena filtrate e ordinate dalla precedenti 2 routine);
- incollare queste ultime domande (con le intestazioni di colonna) in successione in un altro foglio;
Mi fermo qui per ora poiché nell'altro thread sono stato molto confusionario.
Io per ora, con tanto sforzo e impegno sono riuscito a mettere su le 2 sottoriportate routine che rispecchiano i punti 1 e 2 appena descritti,
non sono riuscito a comprendere come procedere oltre con i passaggi ai punti: 3 e 4
Filtro le materie inserite in un Range definito come myAge
Public Sub FiltroArray()
Dim i As Long, arr As Variant
arr = Application.Transpose(Range("myAge"))
With Sheets("Foglio1")
For i = LBound(arr) To UBound(arr)
arr(i) = CStr(arr(i))
Next i
'to filter all values in the array at once specify xlFilterValues
.Columns("j").AutoFilter field:=1, Criteria1:=arr, _
Operator:=xlFilterValues
End With
Call OrdinaCrescente
End Sub
Ordino i dati appena filtrati in ordine crescente.
Public Sub OrdinaCrescente()
'Range da ordinare : [A1:J10000]
Dim WS As Worksheet
Set WS = ThisWorkbook.Worksheets("Foglio1")
Dim R As Range
Set R = WS.Range("A1:J10000")
With WS.Sort
.SortFields.Clear
.SortFields.Add Key:=Range("J2:J10000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange R
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.Apply
End With
End Sub
Chiedo il vostro cortese prezioso aiuto poiché ne necessito per un mio progetto molto importante, se non sono stato chiaro per favore ditemelo, cercherò con tutte le mie forze di spiegarmi meglio e di farmi comprendere.
P.S. il file di esempio l'ho postato al seguente link: https://1drv.ms/x/s!Ali6qqOH3dOAiwYUVG\_spsABJCFt
Ringrazio come sempre chi mi aiuta in questo.
Ciao Nicola.