Reemplazar un numero en un rango de celdas en excel

Bueno tengo un rango de números entre el rango "B1; AG40" de cuatro cifras cada celda y en la columna AV tengo un listado de numeros; como podría hacer para aquellos valores que están en la columna AV y sean iguales a los que están en el rango "B1; AG40" lo reemplace por el valor de la primer fila de la columna AV resaltarlos con color y además el código me diera la opción con un inputbox de dejar todo como estaba antes para así repetir el proceso con otros números

1 Respuesta

Respuesta
1

Prueba esta macro y comentas

Sub buscar_reemplazar_colorear()
Set DATOS = Range("b2").CurrentRegion
Set lista = Range("av2").CurrentRegion
MATRIZ = DATOS
With lista
    For i = 1 To .Rows.Count
        numeros = .Cells(i, 1)
        cuenta = WorksheetFunction.CountIf(DATOS, numeros)
        If cuenta > 0 Then
            For j = 1 To cuenta
                If j = 1 Then Set busca = DATOS.Find(numeros, lookat:=xlWhole)
                If j > 1 Then Set busca = DATOS.FindNext(busca)
                celda = busca.Address
                With Range(celda)
                    .Value = lista.Cells(1, 1)
                    .Interior.ColorIndex = 6
                    .Select
                End With
            Next j
        Else
            GoTo SIGUIENTE
        End If
        ASK = MsgBox("DEJAR TODO COMO ESTABA?", vbYesNo, "AVISO")
        If ASK = 7 Then GoTo SALIDA
        Range(DATOS.Address) = MATRIZ
        ActiveSheet.UsedRange.Interior.ColorIndex = xlNone
SIGUIENTE:
    Next i
End With
SALIDA:
End Sub

La macro funciona pero mejor me gustaría enviarle mi hoja de trabajo a algún correo para los detalles

¿Y cuáles son esos detalles?

Primero que algunas líneas del rango a buscar están resaltadas con color amarillo y al ejecutarse su macro me le quita el color a todas

Solo borra esta línea que es la que elimina los colores

 ActiveSheet.UsedRange.Interior.ColorIndex = xlNone

Como haríamos para que funcione desde la celda b2 hasta la celda ct40

Cambia esta linea
Set DATOS = Range("b2").CurrentRegion
por esta
Set DATOS = Range("b2:ct40")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas