hi Beatrix.
try this.
Sub Del_Rows_n_Cols_on_Condition_AllWS_AllWB_Same_Folder()
'http://www.vbaexpress.com/forum/showthread.php?48681-Selecting-and-deleting-rows-based-on-criteria
Dim wb As Workbook, ws As Worksheet
Dim fRange As Range
Dim FirstRowQ As Variant
Dim i As Long, FR As Long, LR As Long, LC As Long
Dim fName, fPath As String
fPath = "C:\Files\" 'change to suit. include final \
fName = Dir(fPath & "*.xls*")
Do While fName <> ""
Set wb = Workbooks.Open(fPath & fName)
wb.Worksheets(1).Activate
FirstRowQ = MsgBox(wb.Name & vbLf & vbLf & "Is the first row the same in each worksheet?", vbYesNoCancel, "First Row Decision")
If FirstRowQ = vbYes Then
Set fRange = Application.InputBox("Please Select the First Row of the Range", "First Row Selection", Type:=8)
FR = fRange.Row
For Each ws In wb.Worksheets
With ws
LR = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
LC = .Cells.Find("*", , , , xlByColumns, xlPrevious).Column
If LR > FR Then 'ws has row(s) with data below selected first row
For i = LR To FR Step -1
If .Cells(i, 1) = "" Then .Rows(i).Delete 'check for blank cells in Col A
'or: delete above line and use below line if only blank rows will be deleted
'If Application.CountA(Rows(i)) = 0 Then .Rows(i).Delete 'check if whole row is blank
If .Cells(i, 3) = "NW" Or .Cells(i, 3) = "NE" Then .Rows(i).Delete 'check for specific values in Col C
Next i
End If
If LC > 1 Then 'ws has more than 1 columns with data
For i = LC To 1 Step -1
If Application.CountA(Columns(i)) = 0 Then .Columns(i).Delete 'check if whole column is blank
Next i
End If
End With
Next ws
ElseIf FirstRowQ = vbNo Then
For Each ws In wb.Worksheets
With ws
.Activate
Set fRange = Application.InputBox("Select the first row in each worksheet", "First Row Selection", Type:=8)
FR = fRange.Row
LR = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
LC = .Cells.Find("*", , , , xlByColumns, xlPrevious).Column
If LR > FR Then 'ws has row(s) with data below selected first row
For i = LR To FR Step -1
If .Cells(i, 1) = "" Then .Rows(i).Delete 'check for blank cells in Col A
'or: delete above line and use below line if only blank rows will be deleted
'If Application.CountA(Rows(i)) = 0 Then .Rows(i).Delete 'check if whole row is blank
If .Cells(i, 3) = "NW" Or .Cells(i, 3) = "NE" Then .Rows(i).Delete 'check for specific values in Col C
Next i
End If
If LC > 1 Then 'ws has more than 1 columns with data
For i = LC To 1 Step -1
If Application.CountA(Columns(i)) = 0 Then .Columns(i).Delete 'check if whole column is blank
Next i
End If
End With
Next ws
Else
MsgBox "You cancelled the code execution. Quitting...", vbOKOnly, "QUIT"
wb.Close SaveChanges:=False
Exit Sub
End If
wb.Close SaveChanges:=True
fName = Dir()
Loop
End Sub