alexanderguhr
New Member
- Joined
- Jul 28, 2021
- Messages
- 2
- Office Version
- 365
- Platform
- Windows
I did not create this macro - it was written years ago by someone else. I need some help adjusting the script to ignore the tab "Dash"
I really appreciate any insight to help me.
This is the macro
I really appreciate any insight to help me.
This is the macro
VBA Code:
Sub Consolidatesheets()
'Merge all sheets in a workbook into one summary sheet (stacked)
'Data is sorted by a specific column name
Dim cs As Worksheet, ws As Worksheet
Dim LR As Long, NR As Long, sCol As Long
Dim sName As Boolean, SortStr As String
Application.ScreenUpdating = False
'From the headers in data sheets, enter the column title to sort by when finished
SortStr = "Invoice #"
'Add consolidation sheet if needed
If Not Evaluate("ISREF(Consolidate!A1)") Then _
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Consolidate"
'Option to add sheet names to consolidation report
sName = MsgBox("Add sheet names to consolidation report?", vbYesNo + vbQuestion) = vbYes
'Setup
Set cs = ActiveWorkbook.Sheets("Consolidate")
cs.Cells.ClearContents
NR = 1
'Process each data sheet
For Each ws In Worksheets
If ws.Name <> "Consolidate" Then
LR = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
'customize this section to copy what you need
If NR = 1 Then 'copy titles and data to start the consolidation
ws.Range("A1", ws.Cells(1, Columns.Count).End(xlToLeft)).Copy
If sName Then
cs.Range("B1").PasteSpecial xlPasteAll
Else
cs.Range("A1").PasteSpecial xlPasteAll
End If
NR = 2
End If
ws.Range("A11:BB" & LR).Copy 'copy data
If sName Then 'paste and add sheet names if required
cs.Range("B" & NR).PasteSpecial xlPasteValues
cs.Range("A" & NR, cs.Range("B" & cs.Rows.Count).End(xlUp).Offset(0, -1)) = ws.Name
Else
cs.Range("A" & NR).PasteSpecial xlPasteValues
End If
NR = cs.Range("A" & cs.Rows.Count).End(xlUp).Row + 1
End If
Next ws
'Sort
LR = cs.Range("A" & cs.Rows.Count).End(xlUp).Row
On Error Resume Next
sCol = cs.Cells.Find(SortStr, After:=cs.Range("A1"), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Column
cs.Range("A1:BB" & LR).Sort Key1:=cs.Cells(2, sCol + (IIf(sName, 1, 0))), Order1:=xlAscending, _
Header:=xlYes, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
'Cleanup
If sName Then cs.[A1] = ""
If sName Then cs.[B1] = "Order #"
If sName Then cs.[C1] = "VIN #"
If sName Then cs.[D1] = "Product Description"
If sName Then cs.[E1] = "Original Factory Production Date"
If sName Then cs.[F1] = "Updated Factory Production Date"
If sName Then cs.[G1] = "Completion Date"
If sName Then cs.[H1] = "Ship Date"
If sName Then cs.[I1] = "Border Destination"
If sName Then cs.[J1] = "Border Arrival Date"
If sName Then cs.[K1] = "US Arrival Date"
If sName Then cs.[L1] = "Customer Pick-Up Date"
If sName Then cs.[A2] = "Sheet"
cs.Rows(1).Font.Bold = True
cs.Cells.Columns.AutoFit
Application.CutCopyMode = False
Application.ScreenUpdating = True
cs.Activate
Range("A1").Select
Set cs = Nothing
End Sub
Last edited by a moderator: