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.
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.
- Anónimoahora mismo
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.