REEMPLAZAR VALOR BUSCANCO EN VALORES

4 envíos / 0 nuevos
Último envío
fjlruiz
Imagen de fjlruiz
Offline
última acción: Hace 4 años 9 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntos
alta: 11/01/2010 - 10:59
Puntos: 817
REEMPLAZAR VALOR BUSCANCO EN VALORES

Buenos dias:

Tengo una columna en la que como resultado de una formula me pueden aparecer 2 valores diferentes. Un valor numérico o un texto indicando EXCLUIDO. Estoy intentando hacer una macro para que las celdas que tienen como resultado EXCLUIDO se borre la formula y aparezca diretamente el texto sin fórmula.

El problema es que con .find si tengo la opcion de buscar en valores, pero en .replace no.

Podría hacerlo recorriendo todo el rango de datos en la columna con una macro y sustituyendo, pero son muchos datos y es lento.

A alguien se le ocurre una forma rápida de hacerlo??

Un saludo y muchas gracias

Etiquetas: 

Cron
Imagen de Cron
Offline
última acción: Hace 2 meses 1 semana
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12715
Recorre el rango con CELLS(f

Recorre el rango con CELLS(f,c)

No selecciones las celdas. Simplemente comprueba su valor con CELLS(f,c).value y sustitúyelo cuando lo necesites.

Algo así como:

if cells(i,j).value = "EXCLUIDO" then cells(i,j).formula = "='EXCLUIDO"

Al trabajar solo en memoria, es mucho más rápido.

Saludos

 

Nota: no he probado el código, es posible que necesite pequeñas correcciones.

fjlruiz
Imagen de fjlruiz
Offline
última acción: Hace 4 años 9 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntos
alta: 11/01/2010 - 10:59
Puntos: 817
RECORRE RANGO

Muchisimas gracias Cron, finalmente lo he hecho como tu me has indicado y no va demasiado lento

  If Cells(I, 6).Value = "EXCLUIDO" Then Cells(I, 6).Formula = "EXCLUIDO"

Un saludo

Cron
Imagen de Cron
Offline
última acción: Hace 2 meses 1 semana
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12715
Si al principio de la macro

Si al principio de la macro escribes:

Application.ScreenUpdating = False

La cosa irá un poco más rápida. A cambio, no podrás ir viendo cómo se cambian las cosas, únicamente verás las cosas cambiadas al final.

 

Un saludo