Te anexo la macro. Funciona de la siguiente manera:
Lee los clientes y los busca en la hoja empresas, pero va a buscar palabra por palabra, por ejemplo:
Tienes un cliente: "Coca Cola Company"
Lo que hace la macro es tomar la palabra "Coca" y buscarlo en empresas, si lo encuentra pone el cliente.
Después busca la palabra "Cola", si la encuentra, pone el cliente.
Y por último busca la palabra "Company", si la encuentra, pone el cliente.
La macro revisa si ya puso el cliente, para no ponerlo 2 veces. En el ejemplo de "Coca Cola Company". La macro lo encuentra 2 veces, una por "Coca" y otra por "Cola", pero solamente lo registra una vez.
Otro ejemplo:
En tus clientes tienes "DirecTV Colombia", lo que hace la macro es buscar la palabra "DirecTV", pero no la encuentra, ya que en las empresas tienes: "Direc" y "TV", es decir, tienes 2 palabras.
Si por el contrario en clientes tuvieras: "Direc" "Tv" "Colombia" (3 palabras) y en empresas tuvieras "Directv", la macro la encontraría 2 veces, una por "Direc" y otra por "tv".
Otro ejemplo:
Si en empresas tuvieras una empresa llamada: "Company"
La macro te pondría en la columna B "Movistar Company" y en la columna C "Coca Cola Company". Serían 2 coincidencias, que después tendrías que verificar cuál es la correcta.
Sub CompararEmpresas()
'Por.Dante Amor
Application.ScreenUpdating = False
Application.StatusBar = False
Set h1 = Sheets("Hoja1") 'empresas
Set h2 = Sheets("Hoja2") 'clientes
'
uc = h1.UsedRange.Columns(h1.UsedRange.Columns.Count).Column
If uc = 1 Then uc = 2
u = h1.Range("A" & Rows.Count).End(xlUp).Row
h1.Range(h1.Cells(2, 2), h1.Cells(u, uc)).ClearContents
'
For i = 2 To h2.Range("A" & Rows.Count).End(xlUp).Row
Application.StatusBar = "Comparando cliente: " & i
pals = Split(h2.Cells(i, "A"), " ")
For k = LBound(pals) To UBound(pals)
dato = pals(k)
Set b = h1.Columns("A").Find(dato, lookat:=xlPart)
If Not b Is Nothing Then
f = b.Row
uc2 = h1.Cells(f, Columns.Count).End(xlToLeft).Column + 1
Set d = h1.Range(h1.Cells(f, 2), h1.Cells(f, uc2)).Find(h2.Cells(i, "A"), lookat:=xlWhole)
If d Is Nothing Then
h1.Cells(f, uc2) = h2.Cells(i, "A")
End If
End If
Next
Next
Application.ScreenUpdating = True
Application.StatusBar = False
MsgBox "Terminado"
End Sub
S a l u d o s . D a n t e A m o r
Recuerda valorar la respuesta.