Macro reemplazar Formula

07/07/2005 - 08:31 por mbergaretxe | Informe spam
Hola grupo, especialmente a ti KL que tanto me has ayudado.

Creo saber donde se produce el problema (pero no la solución).

Vuelvo a explicarlo (a ver si esta vez más claramente). Utilizo el
procedimiento que KL me pasó como ejemplo:

Sub Test2()


If ActiveCell.HasFormula Then
ActiveCell.Replace _
What:="CALL(G2,", _
Replacement:="AnguloARadiens(G2,", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End If
End Sub





Estas líneas de código están dentro de un bucle (de 0 hasta 8). Los datos
de búsqueda (de 0 a 8) los tengo en un array y los de reemplazo en otro.

El problema está en que cuando se produce uno de los 8 posibles reemplazos
(la celda aún está sin reemplazar del todo), Excel evalua la formula como
no válida.

Mi código es algo así:

for I = 0 to 8
If ActiveCell.HasFormula Then
ActiveCell.Replace _
What:=ListaBusqueda(I), _
Replacement:=ListaReemplazo(I), _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End If
Next I

donde ListaBusqueda(0) = "Funcion1("
donde ListaBusqueda(1) = "Funcion2("
donde ListaBusqueda(2) = "Funcion3("
...

y
ListaReemplazo(0) = "FuncionAntigua1("
ListaReemplazo(1) = "FuncionAntigua2("
ListaReemplazo(2) = "FuncionAntigua3("

..

Así al realizar un reemplazo de la siguiente Celda:

X1 por ejemplo
=FuncionAntigua1(...;FuncionAntigua2(...;FuncionAntigua5(...)
serían necesarios 3 pasos correctos del bucle, cuando terminase el mismo,
la celda quedaría con los valores
=Funcion1(...;Funcion2(...;Funcion5(...), pero no realiza ninguno de los 3
cambios necesarios aunq ListaBusqueda(I) tiene el valor correcto que se
busca (lo he trazado, paso por la línea de replace pero no lo hace).

No se si habrá quedado muy claro. Espero que si. La hoja no la puedo
exponer porque es de un cliente y debería pedirlo permiso, etc etc

Gracias por toda vuestra ayuda. Mikel

Preguntas similare

Leer las respuestas

#11 mbergaretxe
07/07/2005 - 13:38 | Informe spam
Hola grupo, sobre todo a Hector y KL que me han intentado ayudar mucho.

HE SOLUCIONADO MI PROBLEMA!!!!!!!!!!!!!

Gracias a todos.

El problema era que al realizar parte del reemplazo de la celda, Excel
evalúa la formula como me temía, la da como errónea (sin decir "ni mú") y
no hace ninguno de los reemplazos.

Lo he solucionado poniendo un caracter cualquiera por delante de la
fórmula (para que sea un text), realizando el reemplazo y quitando el
carácter al final del mismo. Por fin!!!!!!!!!!!!!!

Gracias por vuestro tiempo. Un saludo: Mikel





Héctor Miguel wrote:

hola, KL !

> ... pero es que ni siquiera es necesario ir celda por celda ni comprobar


si la celda tiene formula (!!!) Deberia bastar con algo asi [...]

[creo que] sera 'mejor' si le 'adelgazas' el codigo que esta usando :D
[p.e.] dentro del bucle tiene DOS instrucciones de 'reemplazo' para la misma


matriz 'de busqueda' -?- [y etc. etc. etc.] :D

saludos,
hector.
Respuesta Responder a este mensaje
#12 KL
07/07/2005 - 14:12 | Informe spam
Hola Mikel,

Me alegro de verdad de que hayas solucionado tu problema. Sin embargo, creo
sinceramente que la verdadera causa del problema esta todavia por encontrar
(p.ej. a mi el codigo me funciona incluso si la formula da error :-O), pero
si lo que importa es solucionar el problema YA, entonces no se hable mas del
tema. Ahora, si por "el amor al deporte" te gustaria encontrar la verdadera
causa, ya sabes - aqui estamos.

Saludos,
KL


"Mikel" wrote in message
news:%
Hola grupo, sobre todo a Hector y KL que me han intentado ayudar mucho.

HE SOLUCIONADO MI PROBLEMA!!!!!!!!!!!!!

Gracias a todos.

El problema era que al realizar parte del reemplazo de la celda, Excel
evalúa la formula como me temía, la da como errónea (sin decir "ni mú") y
no hace ninguno de los reemplazos.

Lo he solucionado poniendo un caracter cualquiera por delante de la
fórmula (para que sea un text), realizando el reemplazo y quitando el
carácter al final del mismo. Por fin!!!!!!!!!!!!!!

Gracias por vuestro tiempo. Un saludo: Mikel





Héctor Miguel wrote:

hola, KL !



> ... pero es que ni siquiera es necesario ir celda por celda ni
> comprobar


si la celda tiene formula (!!!) Deberia bastar con algo asi [...]

[creo que] sera 'mejor' si le 'adelgazas' el codigo que esta usando :D
[p.e.] dentro del bucle tiene DOS instrucciones de 'reemplazo' para la
misma


matriz 'de busqueda' -?- [y etc. etc. etc.] :D

saludos,
hector.




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida