Ayuda excel

Hola, no se nada de macros y, creo que lo que pretendo hacer sólo puede ser de este modo. Quisiera encontrar un numero que esta en la celda (A5), en una columna AC7:AC16 que tiene números consecutivos, y que a la vez cambie de color esa celda, designando así de forma rápida donde está ese numero. Gracias.

1 respuesta

Respuesta
1
A ver si este código hace lo que quieres:
Public Sub Busca_Numero()
'Definicion de variables
Dim x As Integer
Dim buscar As String
buscar = Worksheets(1).Cells(5, 1)
For x = 7 To 16 Step 1
    If Worksheets(1).Cells(x, 29) = buscar Then
        Worksheets(1).Cells(x, 29).Interior.ColorIndex = 3
        Else
        Worksheets(1).Cells(x, 29).Interior.ColorIndex = 0
    End If
Next x
End Sub
Ya me dices que tal.
Excelente, gracias por la aportación.
Pero, me he dado cuenta de que también tengo que buscarlos en las columnas AD7-AD16 a la columna AI7-AI16. Se me ocurrió crear otro modulo con el nº 30, 31... pero no lo consigo.
Ejemplo:
  a             ac          ad         ae      af    ....
1234 1230 1204 1034 0234
                 1231 1214 1134 1234
Gracias por todo
Lo que quieres puedes hacerlo fácilmente tú misma si entiendes lo que hace la macro. Voy a intentar explicártelo.
"buscar = Worksheets(1).Cells(5, 1)" à Esta instrucción lo que hace es asignar el valor que quieres buscar a la variable "buscar". "Worksheets(1)" hace referencia a la hoja 1 del libro. Si pusiéramos un 2 haría referencia a la hoja 2. Esto es independiente del nombre que le hayas puesto a la hoja. "Cells(5,1)" hace referencia al valor de la celda de la fila 5 columna 1, esto es, la A5.
For x = 7 To 16 Step 1  à Aquí decimos que vamos a variar x ente el valor 7 y el 16 en pasos de 1. Esto nos da una serie de valores: 7, 8, 9,., 14,15 y 16. Empezamos con el valor x=7.
"If Worksheets(1).Cells(x, 29) = buscar Then" à comprobamos si el valor de la "Cells(7,29)", o sea, fila 7 columna 29 (AC7) es igual al valor de la variable buscar, que es donde habíamos guardado previamente el valor de la celda A5.
En caso de que sean iguales, pasamos a la siguiente línea que es la que hay a continuación del "Then" en caso contrario pasaríamos a la que hay a continuación del "Else", que significa "sino".
Worksheets(1). Cells(x, 29). Interior. ColorIndex = 3 à Esta línea cambia el color de la celda a rojo.
Worksheets(1). Cells(x, 29). Interior. ColorIndex = 0  à  Esta lo cambia al color blanco. Esto es más que nada por si habíamos cambiado previamente el color de la celda a rojo pero ahora como no cumple la condición debería estar en blanco.
"End If" à Aquí indicamos que hemos acabado de evaluar la condición de que la celda AC7 sea igual o diferente de la variable "buscar".
"Next x" à Esto indica a Excel que hemos acabado con el valor de "x=7" y que siga con el siguiente, en este caso el 8.
Ahora volveríamos a la línea "For", comprobaríamos que el valor de x está entre 7 y 16, y volveríamos a repetir todas las operaciones siguientes pero con el nuevo valor de "x".
Si el valor no estuviera en el rango, por ejemplo 17, habríamos acabado y seguiríamos con la línea que va después de "Next x".
Sabiendo todo esto lo único que tienes que hacer es entre el "Next x" y el "End Sub" añadir un nuevo bloque "For" y cambiar el valor de la columna 29 por el que tu quieras.
Ya me dirás como queda al final.

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas