I am very inexperienced with VBA and trying to understand better, but here is my issue. I am currently running the below macro on a workbook. Everything runs good currently, but we are now wanting to delete rows if the cell in column I contains the text COMPL or CMPEB. I have watched many different videos but they all show how to write the code from the start. I am trying to add it to my current code but every time I write it, I keep getting a Compile error: Expected End Sub error. Can anyone please help!!!
Sub DSRConsol_F5()
'Rename the sheet to T-45
ActiveSheet.Name = "T-45 AOG"
'Clear row 1
ActiveSheet.Rows(1).Clear
'Insert two blank rows
Rows(2).Insert Shift:=xlDown
Rows(2).Insert Shift:=xlDown
'Create orange header on the active sheet
ActiveSheet.Activate
With ActiveSheet.Range("B1:K2")
.Merge
.HorizontalAlignment = xlCenter
.Interior.ColorIndex = 45
.Value = Format(DateValue(Now), "DD MMM") + " " + ActiveSheet.Name
.Font.Size = 24
.Font.Bold = True
End With
Dim text_length As Integer, x As Integer, y As Integer, lastrow As Integer, lastcol As Integer
Dim InputSheet As String
InputSheet = ActiveSheet.Name
Sheets(InputSheet).Activate
'set column widths
Worksheets(InputSheet).Columns("B:B").ColumnWidth = 60
Worksheets(InputSheet).Columns("C:C").ColumnWidth = 44
Worksheets(InputSheet).Columns("D:D").ColumnWidth = 12
Worksheets(InputSheet).Columns("E:E").ColumnWidth = 18
Worksheets(InputSheet).Columns("F:G").ColumnWidth = 12
Worksheets(InputSheet).Columns("H:H").ColumnWidth = 6
Worksheets(InputSheet).Columns("I:I").ColumnWidth = 12
Worksheets(InputSheet).Columns("J:J").ColumnWidth = 8
Worksheets(InputSheet).Columns("K:K").ColumnWidth = 37
'Establish last row and column counts
lastrow = Worksheets(InputSheet).UsedRange.Rows.Count
lastcol = Worksheets(InputSheet).UsedRange.Columns.Count
'Basic formatting on all rows in the sheet
Worksheets(InputSheet).Range("A:P").VerticalAlignment = xlCenter 'set vert alignment to center
Worksheets(InputSheet).Range("B:P").HorizontalAlignment = xlCenter 'set horizontal alignment to center for now, will adjust Remarks / Nomenclature later
Worksheets(InputSheet).Range("A:P").Font.Name = "Arial" 'set font to Arial
Worksheets(InputSheet).Range("K:K").WrapText = True 'Wrap text on column K, which should be Remarks
'Loop through rows 3+ to format cells
x = 3
Do While x <= lastrow
'align text in cells based on criteria: ignore header rows, xltop alignment for Remarks column of Aircraft, xltop alignment for Gripes
If ActiveSheet.Cells(x, 3) = "TMS" Then 'Modex-BUNO header row
With ActiveSheet.Range("B" & x & ":K" & x) 'set the format for columns B to K of the row
.Interior.Color = RGB(155, 194, 230) 'blue-gray fill
.Font.Size = 11
.Font.Bold = True
.Borders.LineStyle = xlContinuous
.Borders.Weight = xlThin
End With
Range("B" & x).Value = "MODEX-BUNO" 'Add label for "modex-buno" column
ActiveSheet.Rows(x).Insert Shift:=xlDown 'Add a blank row above for the squadron
lastrow = lastrow + 1 'update lastrow so we don't miss rows at the bottom
With ActiveSheet.Range("B" & x & ":K" & x) 'set the format for squadron row
.Interior.Color = RGB(155, 194, 230) 'blue-gray fill
End With
With ActiveSheet.Range("B" & x & ":C" & x) ' merge and center first 2 cells for squadron name
.Merge
.HorizontalAlignment = xlCenter
End With
'populate the squadron name based on Location
If ActiveSheet.Range("I" & (x + 2)) = "NASM" Then
Range("B" & x & ":C" & x).Value = "TW-1"
ElseIf ActiveSheet.Range("I" & (x + 2)) = "NASK" Then
Range("B" & x & ":C" & x).Value = "TW-2"
ElseIf ActiveSheet.Range("I" & (x + 2)) = "NASP" Then
Range("B" & x & ":C" & x).Value = "TW-6"
Else
End If
x = x + 1 'increase x since we just added the row and don't want to repeat adding blank rows
ElseIf ActiveSheet.Cells(x, 3) = "Nomenclature" Then 'Nomenclature header row
With ActiveSheet.Range("C" & x & ":K" & x) 'format for columns B to K of the row
.Interior.Color = RGB(105, 105, 105) 'dark gray fill
.Font.Size = 7
.Font.Color = RGB(255, 255, 255) 'white font
.Font.Bold = True
.Borders.LineStyle = xlContinuous
.Borders.Weight = xlThin
End With
vReturn = Application.Match(Range("L" & x).Value, Worksheets("Yesterday").Range("L:L"), 0)
If IsError(vReturn) Then
Range("B" & x).Value = " "
Else
ActiveSheet.Range("B" & x).Value = Application.Index(Worksheets("Yesterday").Range("B:B"), vReturn)
Worksheets("Yesterday").Range("B" & vReturn).Copy
ActiveSheet.Range("B" & x).PasteSpecial xlPasteAll
End If
ElseIf ActiveSheet.Cells(x, 3) = "T-45" Then 'Aircraft row
With ActiveSheet.Range("C" & x & ":K" & x) 'set the format for columns C to K of the row
.Font.Size = 7
.Borders.LineStyle = xlContinuous
.Borders.Weight = xlThin
End With
Range("J" & x).NumberFormat = "m/d/yyyy"
If ActiveSheet.Range("I" & x) = "NASM" Then
Range("I" & x).Interior.Color = RGB(254, 216, 117)
ElseIf ActiveSheet.Range("I" & x) = "NASK" Then
Range("I" & x).Interior.Color = RGB(255, 127, 127)
ElseIf ActiveSheet.Range("I" & x) = "NASP" Then
Range("I" & x).Interior.Color = RGB(255, 87, 51)
Else
End If
ElseIf Len(ActiveSheet.Cells(x, 2)) = 0 And (Len(ActiveSheet.Cells(x, 3)) <> 0 Or Len(ActiveSheet.Cells(x, 9)) <> 0) Then 'Gripe row
ActiveSheet.Cells(x, lastcol).HorizontalAlignment = xlLeft 'set horiz alignment for remarks
ActiveSheet.Cells(x, 3).HorizontalAlignment = xlLeft 'nomenclature
'import yesterday's notes
vReturn = Application.Match(Range("L" & x).Value, Worksheets("Yesterday").Range("L:L"), 0)
If IsError(vReturn) Then
Range("B" & x).Value = " "
Else
ActiveSheet.Range("B" & x).Value = Application.Index(Worksheets("Yesterday").Range("B:B"), vReturn)
Worksheets("Yesterday").Range("B" & vReturn).Copy
ActiveSheet.Range("B" & x).PasteSpecial xlPasteAll
ActiveSheet.Range("B" & x).Font.Name = "Arial"
ActiveSheet.Range("B" & x).Font.Size = 11
End If
With ActiveSheet.Range("C" & x & ":K" & x) 'set the format for columns C to K of the row
.Font.Size = 7
.Borders.LineStyle = xlContinuous
.Borders.Weight = xlThin
.Interior.Color = RGB(211, 211, 211)
End With
If x Mod 2 = 1 Then ' check if row number is odd; alternate the gray fill
ActiveSheet.Range("C" & x & ":K" & x).Interior.Color = RGB(211, 211, 211) ' light gray
ElseIf x Mod 2 <> 1 Then ' check ir row number is even to use other gray fill
ActiveSheet.Range("C" & x & ":K" & x).Interior.Color = RGB(169, 169, 169) ' light gray
End If
Else ' handle any other cases
' do nothing
End If
x = x + 1
Loop
'Hide column A
Columns("A:A").EntireColumn.Hidden = True
Columns("L:L").EntireColumn.Hidden = True
End Sub
Sub DSRConsol_F5()
'Rename the sheet to T-45
ActiveSheet.Name = "T-45 AOG"
'Clear row 1
ActiveSheet.Rows(1).Clear
'Insert two blank rows
Rows(2).Insert Shift:=xlDown
Rows(2).Insert Shift:=xlDown
'Create orange header on the active sheet
ActiveSheet.Activate
With ActiveSheet.Range("B1:K2")
.Merge
.HorizontalAlignment = xlCenter
.Interior.ColorIndex = 45
.Value = Format(DateValue(Now), "DD MMM") + " " + ActiveSheet.Name
.Font.Size = 24
.Font.Bold = True
End With
Dim text_length As Integer, x As Integer, y As Integer, lastrow As Integer, lastcol As Integer
Dim InputSheet As String
InputSheet = ActiveSheet.Name
Sheets(InputSheet).Activate
'set column widths
Worksheets(InputSheet).Columns("B:B").ColumnWidth = 60
Worksheets(InputSheet).Columns("C:C").ColumnWidth = 44
Worksheets(InputSheet).Columns("D:D").ColumnWidth = 12
Worksheets(InputSheet).Columns("E:E").ColumnWidth = 18
Worksheets(InputSheet).Columns("F:G").ColumnWidth = 12
Worksheets(InputSheet).Columns("H:H").ColumnWidth = 6
Worksheets(InputSheet).Columns("I:I").ColumnWidth = 12
Worksheets(InputSheet).Columns("J:J").ColumnWidth = 8
Worksheets(InputSheet).Columns("K:K").ColumnWidth = 37
'Establish last row and column counts
lastrow = Worksheets(InputSheet).UsedRange.Rows.Count
lastcol = Worksheets(InputSheet).UsedRange.Columns.Count
'Basic formatting on all rows in the sheet
Worksheets(InputSheet).Range("A:P").VerticalAlignment = xlCenter 'set vert alignment to center
Worksheets(InputSheet).Range("B:P").HorizontalAlignment = xlCenter 'set horizontal alignment to center for now, will adjust Remarks / Nomenclature later
Worksheets(InputSheet).Range("A:P").Font.Name = "Arial" 'set font to Arial
Worksheets(InputSheet).Range("K:K").WrapText = True 'Wrap text on column K, which should be Remarks
'Loop through rows 3+ to format cells
x = 3
Do While x <= lastrow
'align text in cells based on criteria: ignore header rows, xltop alignment for Remarks column of Aircraft, xltop alignment for Gripes
If ActiveSheet.Cells(x, 3) = "TMS" Then 'Modex-BUNO header row
With ActiveSheet.Range("B" & x & ":K" & x) 'set the format for columns B to K of the row
.Interior.Color = RGB(155, 194, 230) 'blue-gray fill
.Font.Size = 11
.Font.Bold = True
.Borders.LineStyle = xlContinuous
.Borders.Weight = xlThin
End With
Range("B" & x).Value = "MODEX-BUNO" 'Add label for "modex-buno" column
ActiveSheet.Rows(x).Insert Shift:=xlDown 'Add a blank row above for the squadron
lastrow = lastrow + 1 'update lastrow so we don't miss rows at the bottom
With ActiveSheet.Range("B" & x & ":K" & x) 'set the format for squadron row
.Interior.Color = RGB(155, 194, 230) 'blue-gray fill
End With
With ActiveSheet.Range("B" & x & ":C" & x) ' merge and center first 2 cells for squadron name
.Merge
.HorizontalAlignment = xlCenter
End With
'populate the squadron name based on Location
If ActiveSheet.Range("I" & (x + 2)) = "NASM" Then
Range("B" & x & ":C" & x).Value = "TW-1"
ElseIf ActiveSheet.Range("I" & (x + 2)) = "NASK" Then
Range("B" & x & ":C" & x).Value = "TW-2"
ElseIf ActiveSheet.Range("I" & (x + 2)) = "NASP" Then
Range("B" & x & ":C" & x).Value = "TW-6"
Else
End If
x = x + 1 'increase x since we just added the row and don't want to repeat adding blank rows
ElseIf ActiveSheet.Cells(x, 3) = "Nomenclature" Then 'Nomenclature header row
With ActiveSheet.Range("C" & x & ":K" & x) 'format for columns B to K of the row
.Interior.Color = RGB(105, 105, 105) 'dark gray fill
.Font.Size = 7
.Font.Color = RGB(255, 255, 255) 'white font
.Font.Bold = True
.Borders.LineStyle = xlContinuous
.Borders.Weight = xlThin
End With
vReturn = Application.Match(Range("L" & x).Value, Worksheets("Yesterday").Range("L:L"), 0)
If IsError(vReturn) Then
Range("B" & x).Value = " "
Else
ActiveSheet.Range("B" & x).Value = Application.Index(Worksheets("Yesterday").Range("B:B"), vReturn)
Worksheets("Yesterday").Range("B" & vReturn).Copy
ActiveSheet.Range("B" & x).PasteSpecial xlPasteAll
End If
ElseIf ActiveSheet.Cells(x, 3) = "T-45" Then 'Aircraft row
With ActiveSheet.Range("C" & x & ":K" & x) 'set the format for columns C to K of the row
.Font.Size = 7
.Borders.LineStyle = xlContinuous
.Borders.Weight = xlThin
End With
Range("J" & x).NumberFormat = "m/d/yyyy"
If ActiveSheet.Range("I" & x) = "NASM" Then
Range("I" & x).Interior.Color = RGB(254, 216, 117)
ElseIf ActiveSheet.Range("I" & x) = "NASK" Then
Range("I" & x).Interior.Color = RGB(255, 127, 127)
ElseIf ActiveSheet.Range("I" & x) = "NASP" Then
Range("I" & x).Interior.Color = RGB(255, 87, 51)
Else
End If
ElseIf Len(ActiveSheet.Cells(x, 2)) = 0 And (Len(ActiveSheet.Cells(x, 3)) <> 0 Or Len(ActiveSheet.Cells(x, 9)) <> 0) Then 'Gripe row
ActiveSheet.Cells(x, lastcol).HorizontalAlignment = xlLeft 'set horiz alignment for remarks
ActiveSheet.Cells(x, 3).HorizontalAlignment = xlLeft 'nomenclature
'import yesterday's notes
vReturn = Application.Match(Range("L" & x).Value, Worksheets("Yesterday").Range("L:L"), 0)
If IsError(vReturn) Then
Range("B" & x).Value = " "
Else
ActiveSheet.Range("B" & x).Value = Application.Index(Worksheets("Yesterday").Range("B:B"), vReturn)
Worksheets("Yesterday").Range("B" & vReturn).Copy
ActiveSheet.Range("B" & x).PasteSpecial xlPasteAll
ActiveSheet.Range("B" & x).Font.Name = "Arial"
ActiveSheet.Range("B" & x).Font.Size = 11
End If
With ActiveSheet.Range("C" & x & ":K" & x) 'set the format for columns C to K of the row
.Font.Size = 7
.Borders.LineStyle = xlContinuous
.Borders.Weight = xlThin
.Interior.Color = RGB(211, 211, 211)
End With
If x Mod 2 = 1 Then ' check if row number is odd; alternate the gray fill
ActiveSheet.Range("C" & x & ":K" & x).Interior.Color = RGB(211, 211, 211) ' light gray
ElseIf x Mod 2 <> 1 Then ' check ir row number is even to use other gray fill
ActiveSheet.Range("C" & x & ":K" & x).Interior.Color = RGB(169, 169, 169) ' light gray
End If
Else ' handle any other cases
' do nothing
End If
x = x + 1
Loop
'Hide column A
Columns("A:A").EntireColumn.Hidden = True
Columns("L:L").EntireColumn.Hidden = True
End Sub