Macro para Buscar en libro de excel, seleccionar lo encontrado y darle color rojo a lo encotrado

Tengo que buscar nombres, los nombres están en las hojas llamadas "DSO", "MRO", "Manuteção", "Abastecimento", "Organisation Structure Total "

Y una lista de nombres esta en la hoja "buscar estos nombres"

1.- Si son encontrados cambiar de color de letra los nombres que estan en las hojas llamadas "DSO", "MRO", "Manuteção", "Abastecimento", "Organisation Structure Total "

Ejemplo si en la hoja "buscar estos nombres" esta "Paulo Roberto Flório" y esta aparece en una celda de la hoja "Manuteção", seleccionar toda la fila y cambiar de color el texto a rojo. Y luego si esta también sale en otra hoja "Organisation Structure Total" como en el foto seleccionar y dar texto en rojo.

Y luego seguir buscando el mismo nombre y seleccionar la fila y poner el mismo texto pero en rojo.

Y luego seguir buscando el nombre que sigue y hacer lo mismo siempre.

1 respuesta

Respuesta
1

Te anexo la macro

Sub BuscarNombres()
'Por.Dante Amor
    Set h1 = Sheets("buscar estos nombre")
    For i = 1 To h1.Range("B" & Rows.Count).End(xlUp).Row
        If h1.Cells(i, "B") <> "" Then
            For Each h In Sheets
                If h.Name <> h1.Name Then
                    Set r = h.Cells
                    Set b = r.Find(h1.Cells(i, "B"), lookat:=xlWhole)
                    If Not b Is Nothing Then
                        ncell = b.Address
                        Do
                            'detalle
                            h.Rows(b.Row).Font.ColorIndex = 3
                            Set b = r.FindNext(b)
                        Loop While Not b Is Nothing And b.Address <> ncell
                    End If
                End If
            Next
        End If
    Next
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

sale error

Disculpa, me faltó una "s" en el nombre de la hoja, quedaría así:

Sub CopiarStatus()
'Por.Dante Amor
    Set h1 = Sheets("buscar estos nombres")
    For i = 1 To h1.Range("B" & Rows.Count).End(xlUp).Row
        If h1.Cells(i, "B") <> "" Then
            For Each h In Sheets
                If h.Name <> h1.Name Then
                    Set r = h.Cells
                    Set b = r.Find(h1.Cells(i, "B"), lookat:=xlWhole)
                    If Not b Is Nothing Then
                        ncell = b.Address
                        Do
                            'detalle
                            h.Rows(b.Row).Font.ColorIndex = 3
                            Set b = r.FindNext(b)
                        Loop While Not b Is Nothing And b.Address <> ncell
                    End If
                End If
            Next
        End If
    Next
End Sub

lo que hizo fue eliminarme las filas y no las cambio de color dejando el mismo texto pero en rojo

La macro no elimina filas.

Lo que hace es poner el texto de toda la fila de color rojo

h.Rows(b.Row).Font.ColorIndex = 3

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas