Following is a code that should do the task for you:-
Dim sht As Worksheet, ws As Worksheet
Dim lr As Long, x As Long
Dim ID As Object
Dim key As Variant
Set sht = Sheet1
Set ID = CreateObject("Scripting.Dictionary")
Application.ScreenUpdating = False
lr = sht.Range("A" & Rows.Count).End(xlUp).Row
sht.Range("P2:P" & lr) = "=""Expiry"" & "" "" & TEXT(G2,""mm"")"
sht.Range("A2:P" & lr).Sort sht.[P2], 1
For x = 2 To lr
If Not ID.Exists(sht.Range("P" & x).Value) Then
ID.Add sht.Range("P" & x).Value, 1
For Each key In ID.keys
If Not Evaluate("ISREF('" & key & "'!A1)") Then
Worksheets.Add(After:=Sheets(Sheets.Count)).Name = key
Set ws = Sheets(key)
sht.Range("P1:P" & lr).AutoFilter 1, key
Application.ScreenUpdating = True
MsgBox "All done!", vbExclamation
To further automate the whole process and, in effect, simplify it a little, I've actually taken this one step further for you.
The code actually creates the required worksheets for you as needed and transfers the relevant data to the relevant sheet.
The code places a formula in a helper column (Column P) which extracts the month from Column G and adds "Expire" in front of the relevant month (e.g. Expire 06) which thus creates your sheet names (as per your sample). Line 15 in the code above shows the formula that is used.
Hence, as you add new dates with differing months, new sheets will be added as required without duplication. The data in each sheet is refreshed each time the code is executed.
To further streamline the code and speed it up even more, the data in the "Customer List" sheet is sorted via Column P also.
Column P is always cleared and is only used for an instant as the helper.
Following is the link to your sample file with the code implemented:-
Click on the "RUN" button to see it work. You'll note that there aren't any individual month sheets when you open the file. These will be created on executing the code. Play around with the data in the Customer List sheet (add/delete) then click on the button again to see how each sheet is added/refreshed.
Hence, in your actual workbook, delete the existing month sheets and save the file without them. Just keep the Customer List and Data Summary sheets.
However, make sure that you test the code in a copy of your actual workbook first to satisfy yourself that all this works for you.
I hope that this helps.