I grabbed some code from a different thread and did very little modification....

Sub Group_Hides()
Dim rStart As Range, r As Range
Dim lLastRow As Long, sColumn As String
Dim rColumn As Range

sColumn = "G"

lLastRow = Cells(Rows.Count, sColumn).End(xlUp).Row
With ActiveSheet
Set rColumn = .Range(.Cells(1, sColumn), Cells(lLastRow, sColumn))
With rColumn
Set r = .Cells(1, 1)
Do Until r.Row > lLastRow
If rStart Is Nothing Then
If r.Value = "Area Sub:" Then
Set rStart = r
End If
Else
If r.Value <> "Area Sub:" Then
Range(rStart, r.Offset(-1, 0)).Rows.Group
Set rStart = Nothing
End If
End If
Set r = r.Offset(1, 0)
Loop
End With
End With
End Sub

I like the code, but my spreadsheet works a little differently.

I'm looking for code that does this.... Any time in column G, if you see "Area", that's the row the Group should start, ie. the plus sign is there. Then, when you continue down the column and see "Area Sub:", the row before that is the last part of the group. Then it will look for "Area" again and so on and so on. Summary rows below table is unchecked in my spreadsheet which basically means clicking the plus sign to expand your group is at the top of the group, not at the bottom. Not sure if that's needed information.


So, if I have cells in G like

Area
1
2
3
4
Area Sub

Area
1
2
3
4
5
Area Sub

once the macro is run it should be
+Area
Area Sub

+Area
Area Sub

then if I expand it it will be

- Area
1
2
3
4
Area Sub

- Area
1
2
3
4
5
Area Sub

Also, anytime I run the macro, it should clear all groups first.