asalman07,
Sample raw data:
Excel 2007
<colgroup><col style="width: 25pxpx"><col><col><col><col><col></colgroup><thead>
</thead><tbody>
[TD="align: center"]1[/TD]
[TD="align: center"]Accounts[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]2[/TD]
[TD="bgcolor: #FFFFFF"]180F - Unif/Printing/Forms and Supp[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]3[/TD]
[TD="bgcolor: #FFFFFF"]420B - Maint Materials & Supplies[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]4[/TD]
[TD="bgcolor: #FFFFFF"]430B - Inventory Support Fees[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]5[/TD]
[TD="bgcolor: #FFFFFF"]490B - Uniforms Forms & Supplies[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]6[/TD]
[TD="bgcolor: #FFFFFF"]530B - Printing and Duplication[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]7[/TD]
[TD="bgcolor: #FFFFFF"]720G - Materials/Supplies[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]8[/TD]
[TD="bgcolor: #FFFFFF"]570G - Inventory Support Fees[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]9[/TD]
[TD="bgcolor: #FFFFFF"]700G - Office/Computer Supplies[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]10[/TD]
[TD="bgcolor: #FFFFFF"]710G - Small Tools[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]11[/TD]
[TD="bgcolor: #FFFFFF"]730G - Uniforms[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]12[/TD]
[TD="bgcolor: #FFFFFF"]810G - Printing/Duplication[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]13[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
</tbody>
Sheet1
After the macro using four arrays in memory:
Excel 2007
| A | B | C | D | E |
---|
| | | | | |
180F | 420B | 720G | | | |
430B | 570G | | | | |
490B | 700G | | | | |
530B | 710G | | | | |
730G | | | | | |
810G | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
<colgroup><col style="width: 25pxpx"><col><col><col><col><col></colgroup><thead>
</thead><tbody>
[TD="align: center"]1[/TD]
[TD="align: center"]Accounts[/TD]
[TD="align: right"][/TD]
[TD="align: center"]F[/TD]
[TD="align: center"]B[/TD]
[TD="align: center"]G[/TD]
[TD="align: center"]2[/TD]
[TD="bgcolor: #FFFFFF"]180F - Unif/Printing/Forms and Supp[/TD]
[TD="align: right"][/TD]
[TD="align: center"]3[/TD]
[TD="bgcolor: #FFFFFF"]420B - Maint Materials & Supplies[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]4[/TD]
[TD="bgcolor: #FFFFFF"]430B - Inventory Support Fees[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]5[/TD]
[TD="bgcolor: #FFFFFF"]490B - Uniforms Forms & Supplies[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]6[/TD]
[TD="bgcolor: #FFFFFF"]530B - Printing and Duplication[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]7[/TD]
[TD="bgcolor: #FFFFFF"]720G - Materials/Supplies[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]8[/TD]
[TD="bgcolor: #FFFFFF"]570G - Inventory Support Fees[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]9[/TD]
[TD="bgcolor: #FFFFFF"]700G - Office/Computer Supplies[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]10[/TD]
[TD="bgcolor: #FFFFFF"]710G - Small Tools[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]11[/TD]
[TD="bgcolor: #FFFFFF"]730G - Uniforms[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]12[/TD]
[TD="bgcolor: #FFFFFF"]810G - Printing/Duplication[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: center"]13[/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
[TD="align: right"][/TD]
</tbody>
Sheet1
Please TEST this FIRST in a COPY of your workbook (always make a backup copy before trying new code, you never know what you might lose).
1. Copy the below code
2. Open your NEW workbook
3. Press the keys
ALT +
F11 to open the Visual Basic Editor
4. Press the keys
ALT +
I to activate the Insert menu
5. Press
M to insert a Standard Module
6. Where the cursor is flashing, paste the code
7. Press the keys
ALT +
Q to exit the Editor, and return to Excel
8. To run the macro from Excel press
ALT +
F8 to display the Run Macro Dialog. Double Click the macro's name to Run it.
Code:
Sub GetAccounts()
' hiker95, 09/02/2014, ME802776
Dim a As Variant, c As Variant, d As Variant, e As Variant
Dim i As Long, cc As Long, dd As Long, ee As Long, n As Long, lr As Long
Application.ScreenUpdating = False
lr = Cells(Rows.Count, 1).End(xlUp).Row
a = Range("A1:A" & lr)
n = Application.CountIf(Columns(1), "*F -*")
ReDim c(1 To n, 1 To 1)
n = Application.CountIf(Columns(1), "*B -*")
ReDim d(1 To n, 1 To 1)
n = Application.CountIf(Columns(1), "*G -*")
ReDim e(1 To n, 1 To 1)
For i = 2 To lr
If InStr(a(i, 1), "F - ") Then
cc = cc + 1
c(cc, 1) = Left(a(i, 1), WorksheetFunction.Find(" - ", a(i, 1)) - 1)
ElseIf InStr(a(i, 1), "B - ") Then
dd = dd + 1
d(dd, 1) = Left(a(i, 1), WorksheetFunction.Find(" - ", a(i, 1)) - 1)
ElseIf InStr(a(i, 1), "G - ") Then
ee = ee + 1
e(ee, 1) = Left(a(i, 1), WorksheetFunction.Find(" - ", a(i, 1)) - 1)
End If
Next i
Columns("C:E").ClearContents
With Cells(1, 3).Resize(, 3)
.Value = Array("F", "B", "G")
.Font.Bold = True
.HorizontalAlignment = xlCenter
End With
Cells(2, 3).Resize(cc, 1).Value = c
Cells(2, 4).Resize(dd, 1).Value = d
Cells(2, 5).Resize(ee, 1).Value = e
Columns("C:E").AutoFit
Application.ScreenUpdating = True
End Sub
Before you use the macro with Excel 2007 or newer, save your workbook, Save As, a macro enabled workbook with the file extension
.xlsm
Then run the
GetAccounts macro.