This should do it. I removed the one column that collated nothing but dashes, so there are 7 columns total now.
Option Explicit
Sub CollateContacts()
Dim LR As Long, NR As Long
Dim cell As Range, RNG As Range
Dim ws As Worksheet, wsM As Worksheet
Set wsM = Sheets("Contacts")
NR = wsM.Range("A" & Rows.Count).End(xlUp).Row
On Error Resume Next
Application.ScreenUpdating = False
For Each ws In Worksheets
If ws.Name <> wsM.Name Then
ws.Activate
LR = Range("B" & ws.Rows.Count).End(xlUp).Row
Set RNG = Range("A1:A" & LR)
For Each cell In RNG
If InStr(1, cell, ".Na") > 0 Then
NR = NR + 1
wsM.Cells(NR, "A").Value = cell.Offset(0, 1).Value
End If
If InStr(1, cell, "Registration N") > 0 Then _
wsM.Cells(NR, "B").Value = cell.Offset(0, 1).Value
If InStr(1, cell, "Registration D") > 0 Then _
wsM.Cells(NR, "C") = cell.Offset(0, 1).Value
If InStr(1, cell, "Addr") > 0 Then _
wsM.Cells(NR, "D") = cell.Offset(0, 1).Value
If InStr(1, cell, "Country") > 0 Then _
wsM.Cells(NR, "F") = cell.Offset(0, 1).Value
If InStr(1, cell, "Telepho") > 0 Then _
wsM.Cells(NR, "G") = cell.Offset(0, 1).Value
If cell = "" And cell.Offset(-1, 0) Like "Addr*" Then _
wsM.Cells(NR, "E") = cell.Offset(0, 1).Value
Next cell
End If
Next ws
Application.ScreenUpdating = True
wsM.Activate
wsM.Columns("A:G").AutoFit
End Sub
Bookmarks