Buscar valores en una columna en VBA

¡Hola, expertos!
En mi hoja de excel tengo una columna, que contiene algunas celdas con un valor "X". Deseo, mediante una macro, localizar estas celdas y substituir la "X" por una fórmula que me suma los valores de otras celdas de la fila donde está la celda con la "X".
Si lo hago con un bucle, no hay ningún problema, pero creo que debe haber alguna solución más óptima.
¿Cómo puedo hacerlo?
Un saludo y gracias.

1 respuesta

Respuesta
1
Puedes hacerlo con un FOR y un IF, eso te ahorraría bastantes problemas...
for contador=0 to =10000 'segun la cantidad de filas k tengas
if cells(i+contador,j).value=X then 'el i y la j son la primera celda a revisar, despues el contador se encarga de buscar en el resto de la columna
'aki colocas lo k kieres k haga si cumple la condicion
end if
next
Ahora si estas continuamente ingresando datos y toda la columna tiene celdas llenadas continuamente, es decir, no hay celdas hacia abajo vacías, podrías colocarle otro condicional de celda vacía para que salga del FOR, p/e después del if, puedes colocarle:
else if cells(i+contador,j).value=blank then contador = 10000 'mismo numero del for, hace k automaticamente el for termine...
Espero haberte ayudado, si es así, favor cerrar el tema
¡Gracias por tu atención!
Con un bucle ya he visto que se puede hacer, la pregunta era si se podía hacer de alguna manera más automatizada, y sin tener que iterar me devolviese un rango con las celdas que tienen el valor a buscar, para luego modificarlas masivamente, si es que puede ser. ¿Alguna sugerencia?
Realmente no se lo que quieres, porque me dices en forma más "automatizada"... con un bucle es lo más automatizado que existe, por eso te dije que si todas las celdas de la primera columna están llenadas, podrías colocar un condicional que si la siguiente celda está vacía que detenga el loop y termine la macro, así te evitaría un procesamiento de datos inexistentes...
No sé, pensaba que el excel podría hacer esto con una sola instrucción.
Seguiré con el bucle, pues.
Muchas gracias por tu interés.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas