Excel Macro pour filterr automatiquement et exporter le résultat

J'ai un file Excel ayant une colonne C avec des valeurs parfois répétées:

A | B | C ------------ 1 | 2 | a 1 | 4 | b 1 | 5 | c 1 | 2 | d 1 | 6 | a 4 | 2 | d 1 | 2 | a 4 | 4 | c 8 | 2 | c 1 | 8 | d 

Je voudrais créer une macro qui filter la colonne C pour chaque valeur (a, b, c, d, .., n) et save le résultat dans un nouveau file.

Dans mon exemple, le macro returnne le file F1 F1, F2, F3, F4 avec ce contenu:

  A | B | C ------------ 1 | 2 | a 1 | 6 | a 1 | 2 | a A | B | C ------------ 1 | 4 | b A | B | C ------------ 1 | 5 | c 4 | 4 | c 8 | 2 | c A | B | C ------------ 1 | 2 | d 4 | 2 | d 1 | 8 | d 

Comment peut-on écrire la macro?

Voici le code. Vous devez save manuellement les files créés à tout moment. Faites-moi savoir si vous voulez que je définisse un location par défaut et enregistre tous les files automatiquement.

\code\

 Function perform_click() Dim i, lastrow As Integer Dim ws1, ws2 As Workbook Set ws1 = ThisWorkbook lastrow = ws1.Sheets("Sheet1").Range("C500000").End(xlUp).Row ws1.Sheets("Sheet1").Range("C4:C" & lastrow).Copy Range("P4") ws1.Sheets("Sheet1").Range("P4:P" & lastrow).RemoveDuplicates 1, xlNo ActiveSheet.AutoFilterMode = False For i = 4 To ws1.Sheets("Sheet1").Range("P500000").End(xlUp).Row ws1.Sheets("Sheet1").Range("A3:C" & lastrow).AutoFilter 3, ws1.Sheets("Sheet1").Range("P" & i).Value Set ws2 = Workbooks.Add ws1.Sheets("Sheet1").Range("A3:C" & lastrow).SpecialCells(xlCellTypeVisible).Copy ws2.Sheets("Sheet1").Range("A3") Application.DisplayAlerts = False ws2.SaveAs "C:\Users\Praveen Behera\Desktop\F" & i & ".xlsx", 51 Application.DisplayAlerts = True Set ws2 = Nothing Next i End Function Private Sub CommandButton1_Click() perform_click End Sub 

utilisez une requête Oledb pour get les valeurs distinctes de la colonne c dans un tableau … et puis écrivez une autre requête pour get des valeurs pour différentes valeurs du tableau.