Sub fnbcholt_V2()
' hiker95, 12/05/2016, ME978880
Dim wm As Worksheet, wp1 As Worksheet, wp2 As Worksheet, wp3 As Worksheet, wp4 As Worksheet
Dim c As Range, n As Range, p As Range, fn As Range
Application.ScreenUpdating = False
Set wm = Sheets("Main")
Set wp1 = Sheets("Product 1")
Set wp2 = Sheets("Product 2")
Set wp3 = Sheets("Product 3")
Set wp4 = Sheets("Product 4")
With wm
Set fn = .Columns(1).Find("Full Name", LookAt:=xlWhole)
End With
With wp1
For Each c In .Range("A1", .Range("A" & Rows.Count).End(xlUp))
If Not c = vbEmpty And c <> "Full Name" Then
Set n = wm.Columns(1).Find(c.Value, LookAt:=xlWhole)
If Not n Is Nothing Then
Set p = wm.Rows(fn.Row).Find("Product 1", LookAt:=xlWhole)
If Not p Is Nothing Then
wm.Cells(n.Row, p.Column).Value = "X"
End If
End If
End If
Next c
End With
With wp2
For Each c In .Range("A1", .Range("A" & Rows.Count).End(xlUp))
If Not c = vbEmpty And c <> "Full Name" Then
Set n = wm.Columns(1).Find(c.Value, LookAt:=xlWhole)
If Not n Is Nothing Then
Set p = wm.Rows(fn.Row).Find("Product 2", LookAt:=xlWhole)
If Not p Is Nothing Then
wm.Cells(n.Row, p.Column).Value = "X"
End If
End If
End If
Next c
End With
With wp3
For Each c In .Range("A1", .Range("A" & Rows.Count).End(xlUp))
If Not c = vbEmpty And c <> "Full Name" Then
Set n = wm.Columns(1).Find(c.Value, LookAt:=xlWhole)
If Not n Is Nothing Then
Set p = wm.Rows(fn.Row).Find("Product 3", LookAt:=xlWhole)
If Not p Is Nothing Then
wm.Cells(n.Row, p.Column).Value = "X"
End If
End If
End If
Next c
End With
With wp4
For Each c In .Range("A1", .Range("A" & Rows.Count).End(xlUp))
If Not c = vbEmpty And c <> "Full Name" Then
Set n = wm.Columns(1).Find(c.Value, LookAt:=xlWhole)
If Not n Is Nothing Then
Set p = wm.Rows(fn.Row).Find("Product 4", LookAt:=xlWhole)
If Not p Is Nothing Then
wm.Cells(n.Row, p.Column).Value = "X"
End If
End If
End If
Next c
End With
With wm
.Activate
End With
Application.ScreenUpdating = True
End Sub