Macro Reemplazar Formula

05/07/2005 - 10:21 por mbergaretxe | Informe spam
Hola Grupo!

Sigo con el mismo problema después de haber probado las sugerencias que
me hacíais a mis preguntas. Detallo el problema:

Tengo la siguiente macro (reemplaza parte de una formula por una funcion
definida en una macro llamada AnguloARadianes):

If ActiveCell.HasFormula Then
If Not Selection.Find (What:="CALL(G2,",
After:=ActiveCell,
LookIn:=xlFormulas, _
LookAt:=xlPart,
SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=Match_Case.Value) Is
Nothing Then
Selection.Replace What:="CALL(G2,",
Replacement:="AnguloARadiens(, LookAt:=xlPart, _
SearchOrder:=xlByRows,
MatchCase:=Match_Case.Value
End If

El caso es que reconoce que existe una formula en la celda que evaluo
pero no hace el reemplazo que le pido en ciertas celdas¿?

He intentando realizar el reemplazo desde el propio menú de Excel:

Buscar: "LLAMAR(G2;"
Reemplazar por: "AnguloARadianes("

Excel encuentra las ocurrencias de las celdas en las que aparece parte
del texto de formula que busco, pero al darle al botón Reemplazar, sale el
error "FUNCIÓN NO VÁLIDA" y no se produce el reemplazo (como en la macro,
pero en la macro no da error alguno).

Alguien me puede ayudar por favor????? Es urgente, llevo con el tema
meses y nada de nada.

Mil gracias de antemano. Mikel

Preguntas similare

Leer las respuestas

#1 KL
05/07/2005 - 11:27 | Informe spam
Hola Mikel,

Unas cuantas cosas:

1) Me temo, que si cambias de hilo para muchos sera dificil entender los
antecedentes a los que haces referncia :-)
2) Nunca has comentado si te ha funcionado el codigo que te di en el hilo
anterior y si no, que error obtienes.
3) Lo primero que salta a la vista es que tu macro usa el nombre
"AnguloARadiens" mientras que para la busqueda manual dices usar
"AnguloARadianes". Comprueba cual es el nombre verdadero de la funcion
personalizada.
4) Tambien parece que en la siguiente linea te has perdido unos cuantos
caracteres:

Replacement:="AnguloARadiens(, LookAt:=xlPart, _

que me imagino deberia ser algo asi:

Replacement:="AnguloARadiens(G2,", LookAt:=xlPart, _

y al final falta un 'End If'

5) Asimismo, si en el argumento Replacement estas omitiendo "G2,"
deliberadamente, piensa que el error puede deberse al numero incorrecto de
argumentos.
6) Ordenando un poco tu codigo, pienso que algo como lo siguiente deberia
funcionar siempre y cuando el nombre de la funcion personalizada sea
"AnguloARadiens" y el numero de argumentos de la misma sea igual al de la
funcion CALL:

Sub Test1()
With ActiveCell
If .HasFormula Then
If Not .Find( _
What:="CALL(G2,", _
after:=ActiveCell, _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=True) _
Is Nothing Then
.Replace _
What:="CALL(G2,", _
Replacement:="AnguloARadiens(G2,", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=True
End If
End If
End With
End Sub

7) Tambien la parte codicional mas larga (la que detecta la presencia de la
cadena "CALL(G2,") creo que podria eliminarse por innecesaria:

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

8) Finalmente, si el numero de celdas no contiguas que contienen formulas en
tu hoja no supera 8000 (asi a ojo) tu codigo podria ser bastante mas rapido
si usaras la propiedad SpecialCells, algo asi:

Sub Test3()
Dim rng as Range
On Error Resume Next
Set rng = _
ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
If rng Is Nothing Then Exit Sub
rng.Replace "CALL(G2,", "AnguloARadiens(G2,", , , False
End Sub

Saludos,
KL


"Mikel" wrote in message
news:
Hola Grupo!

Sigo con el mismo problema después de haber probado las sugerencias que
me hacíais a mis preguntas. Detallo el problema:

Tengo la siguiente macro (reemplaza parte de una formula por una funcion
definida en una macro llamada AnguloARadianes):

If ActiveCell.HasFormula Then
If Not Selection.Find (What:="CALL(G2,",
After:=ActiveCell,
LookIn:=xlFormulas, _
LookAt:=xlPart,
SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=Match_Case.Value) Is
Nothing Then
Selection.Replace What:="CALL(G2,",
Replacement:="AnguloARadiens(, LookAt:=xlPart, _
SearchOrder:=xlByRows,
MatchCase:=Match_Case.Value
End If

El caso es que reconoce que existe una formula en la celda que evaluo
pero no hace el reemplazo que le pido en ciertas celdas¿?

He intentando realizar el reemplazo desde el propio menú de Excel:

Buscar: "LLAMAR(G2;"
Reemplazar por: "AnguloARadianes("

Excel encuentra las ocurrencias de las celdas en las que aparece parte
del texto de formula que busco, pero al darle al botón Reemplazar, sale el
error "FUNCIÓN NO VÁLIDA" y no se produce el reemplazo (como en la macro,
pero en la macro no da error alguno).

Alguien me puede ayudar por favor????? Es urgente, llevo con el tema
meses y nada de nada.

Mil gracias de antemano. Mikel


Respuesta Responder a este mensaje
#2 mbergaretxe
06/07/2005 - 08:53 | Informe spam
Hola KL:

He probado las 2 soluciones de código que me has dado:
La primera es igual a la que yo he desarrollado (aunq con menos código)
y el resultado es el mismo.
La segunda (la de Special Cells) no realiza la mayoria de reemplazos.
En ambos casos (y otras decenas de pruebas que estoy realizando)
muchísimas celdas quedan sin sustitución alguna. Al ejecutar la macro se
recorre todas las celdas y termina sin error alguno pero sin finalizar
bien su función (cientos de celdas sin sustituir).
La verdad es que ya no se qué es lo que puedo probar (creo que lo he
probado todo o casi todo).
Celdas como las siguientes (y decenas de ellas más) quedan sin sustituir:

=LLAMAR(G2;ASENO(COS(LLAMAR(G3;D115))*SENO(LLAMAR(G3;D95))/COS(LLAMAR(G3;D119))))

=LLAMAR(G2;ASENO(SENO(LLAMAR(G3;D95))*COS(LLAMAR(G3;D115))/COS(LLAMAR(G3;D114))))

=LLAMAR(G2;2*(ATAN(SENO(((LLAMAR(G3;D114)+LLAMAR(G3;D115))/2)*TAN((LLAMAR(G3;D125)+LLAMAR(G3;D95))/2)/COS((LLAMAR(G3;D114)-LLAMAR(G3;D115))/2)))))

=LLAMAR(G2;MAX(LLAMAR(G3;E135);LLAMAR(G3;E136)))

=LLAMAR(G7;H115;H116;H117;H118;H119)

..
..

La sustitución que intento realizar sobre las mismas, es la misma que me
diste en tu último mensaje (dentro de un bucle para realizar varios
reemplazos).

Mirad a ver si me podeis ayudar por favor. Gracias de nuevo. Mikel

KL wrote:

Hola Mikel,

Unas cuantas cosas:

1) Me temo, que si cambias de hilo para muchos sera dificil entender los
antecedentes a los que haces referncia :-)
2) Nunca has comentado si te ha funcionado el codigo que te di en el hilo
anterior y si no, que error obtienes.
3) Lo primero que salta a la vista es que tu macro usa el nombre
"AnguloARadiens" mientras que para la busqueda manual dices usar
"AnguloARadianes". Comprueba cual es el nombre verdadero de la funcion
personalizada.
4) Tambien parece que en la siguiente linea te has perdido unos cuantos
caracteres:

Replacement:="AnguloARadiens(, LookAt:=xlPart, _

que me imagino deberia ser algo asi:

Replacement:="AnguloARadiens(G2,", LookAt:=xlPart, _

y al final falta un 'End If'

5) Asimismo, si en el argumento Replacement estas omitiendo "G2,"
deliberadamente, piensa que el error puede deberse al numero incorrecto de
argumentos.
6) Ordenando un poco tu codigo, pienso que algo como lo siguiente deberia
funcionar siempre y cuando el nombre de la funcion personalizada sea
"AnguloARadiens" y el numero de argumentos de la misma sea igual al de la
funcion CALL:

Sub Test1()
With ActiveCell
If .HasFormula Then
If Not .Find( _
What:="CALL(G2,", _
after:=ActiveCell, _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=True) _
Is Nothing Then
.Replace _
What:="CALL(G2,", _
Replacement:="AnguloARadiens(G2,", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=True
End If
End If
End With
End Sub

7) Tambien la parte codicional mas larga (la que detecta la presencia de la
cadena "CALL(G2,") creo que podria eliminarse por innecesaria:

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

8) Finalmente, si el numero de celdas no contiguas que contienen formulas en
tu hoja no supera 8000 (asi a ojo) tu codigo podria ser bastante mas rapido
si usaras la propiedad SpecialCells, algo asi:

Sub Test3()
Dim rng as Range
On Error Resume Next
Set rng = _
ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
If rng Is Nothing Then Exit Sub
rng.Replace "CALL(G2,", "AnguloARadiens(G2,", , , False
End Sub

Saludos,
KL


"Mikel" wrote in message
news:
> Hola Grupo!
>
> Sigo con el mismo problema después de haber probado las sugerencias que
> me hacíais a mis preguntas. Detallo el problema:
>
> Tengo la siguiente macro (reemplaza parte de una formula por una funcion
> definida en una macro llamada AnguloARadianes):
>
> If ActiveCell.HasFormula Then
> If Not Selection.Find (What:="CALL(G2,",
> After:=ActiveCell,
> LookIn:=xlFormulas, _
> LookAt:=xlPart,
> SearchOrder:=xlByRows, SearchDirection:=xlNext, _
> MatchCase:=Match_Case.Value) Is
> Nothing Then
> Selection.Replace What:="CALL(G2,",
> Replacement:="AnguloARadiens(, LookAt:=xlPart, _
> SearchOrder:=xlByRows,
> MatchCase:=Match_Case.Value
> End If
>
> El caso es que reconoce que existe una formula en la celda que evaluo
> pero no hace el reemplazo que le pido en ciertas celdas¿?
>
> He intentando realizar el reemplazo desde el propio menú de Excel:
>
> Buscar: "LLAMAR(G2;"
> Reemplazar por: "AnguloARadianes("
>
> Excel encuentra las ocurrencias de las celdas en las que aparece parte
> del texto de formula que busco, pero al darle al botón Reemplazar, sale el
> error "FUNCIÓN NO VÁLIDA" y no se produce el reemplazo (como en la macro,
> pero en la macro no da error alguno).
>
> Alguien me puede ayudar por favor????? Es urgente, llevo con el tema
> meses y nada de nada.
>
> Mil gracias de antemano. Mikel
>
>
Respuesta Responder a este mensaje
#3 KL
06/07/2005 - 10:04 | Informe spam
Hola Mikel,

Enviame la hoja si quieres. Creo que debe haber algun problema con la cadena
buscada y/o los datos que estan en las celdas.

Saludos,
KL

"Mikel" wrote in message
news:u$
Hola KL:

He probado las 2 soluciones de código que me has dado:
La primera es igual a la que yo he desarrollado (aunq con menos código)
y el resultado es el mismo.
La segunda (la de Special Cells) no realiza la mayoria de reemplazos.
En ambos casos (y otras decenas de pruebas que estoy realizando)
muchísimas celdas quedan sin sustitución alguna. Al ejecutar la macro se
recorre todas las celdas y termina sin error alguno pero sin finalizar
bien su función (cientos de celdas sin sustituir).
La verdad es que ya no se qué es lo que puedo probar (creo que lo he
probado todo o casi todo).
Celdas como las siguientes (y decenas de ellas más) quedan sin sustituir:

=LLAMAR(G2;ASENO(COS(LLAMAR(G3;D115))*SENO(LLAMAR(G3;D95))/COS(LLAMAR(G3;D119))))

=LLAMAR(G2;ASENO(SENO(LLAMAR(G3;D95))*COS(LLAMAR(G3;D115))/COS(LLAMAR(G3;D114))))

=LLAMAR(G2;2*(ATAN(SENO(((LLAMAR(G3;D114)+LLAMAR(G3;D115))/2)*TAN((LLAMAR(G3;D125)+LLAMAR(G3;D95))/2)/COS((LLAMAR(G3;D114)-LLAMAR(G3;D115))/2)))))

=LLAMAR(G2;MAX(LLAMAR(G3;E135);LLAMAR(G3;E136)))

=LLAMAR(G7;H115;H116;H117;H118;H119)

..
..

La sustitución que intento realizar sobre las mismas, es la misma que me
diste en tu último mensaje (dentro de un bucle para realizar varios
reemplazos).

Mirad a ver si me podeis ayudar por favor. Gracias de nuevo. Mikel

KL wrote:

Hola Mikel,



Unas cuantas cosas:



1) Me temo, que si cambias de hilo para muchos sera dificil entender los
antecedentes a los que haces referncia :-)
2) Nunca has comentado si te ha funcionado el codigo que te di en el hilo
anterior y si no, que error obtienes.
3) Lo primero que salta a la vista es que tu macro usa el nombre
"AnguloARadiens" mientras que para la busqueda manual dices usar
"AnguloARadianes". Comprueba cual es el nombre verdadero de la funcion
personalizada.
4) Tambien parece que en la siguiente linea te has perdido unos cuantos
caracteres:



Replacement:="AnguloARadiens(, LookAt:=xlPart, _



que me imagino deberia ser algo asi:



Replacement:="AnguloARadiens(G2,", LookAt:=xlPart, _



y al final falta un 'End If'



5) Asimismo, si en el argumento Replacement estas omitiendo "G2,"
deliberadamente, piensa que el error puede deberse al numero incorrecto
de
argumentos.
6) Ordenando un poco tu codigo, pienso que algo como lo siguiente deberia
funcionar siempre y cuando el nombre de la funcion personalizada sea
"AnguloARadiens" y el numero de argumentos de la misma sea igual al de la
funcion CALL:



Sub Test1()
With ActiveCell
If .HasFormula Then
If Not .Find( _
What:="CALL(G2,", _
after:=ActiveCell, _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=True) _
Is Nothing Then
.Replace _
What:="CALL(G2,", _
Replacement:="AnguloARadiens(G2,", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=True
End If
End If
End With
End Sub



7) Tambien la parte codicional mas larga (la que detecta la presencia de
la
cadena "CALL(G2,") creo que podria eliminarse por innecesaria:



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



8) Finalmente, si el numero de celdas no contiguas que contienen formulas
en
tu hoja no supera 8000 (asi a ojo) tu codigo podria ser bastante mas
rapido
si usaras la propiedad SpecialCells, algo asi:



Sub Test3()
Dim rng as Range
On Error Resume Next
Set rng = _
ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
If rng Is Nothing Then Exit Sub
rng.Replace "CALL(G2,", "AnguloARadiens(G2,", , , False
End Sub



Saludos,
KL




"Mikel" wrote in message
news:
> Hola Grupo!
>
> Sigo con el mismo problema después de haber probado las sugerencias
> que
> me hacíais a mis preguntas. Detallo el problema:
>
> Tengo la siguiente macro (reemplaza parte de una formula por una
> funcion
> definida en una macro llamada AnguloARadianes):
>
> If ActiveCell.HasFormula Then
> If Not Selection.Find (What:="CALL(G2,",
> After:=ActiveCell,
> LookIn:=xlFormulas, _
> LookAt:=xlPart,
> SearchOrder:=xlByRows, SearchDirection:=xlNext, _
> MatchCase:=Match_Case.Value)
> Is
> Nothing Then
> Selection.Replace What:="CALL(G2,",
> Replacement:="AnguloARadiens(, LookAt:=xlPart, _
> SearchOrder:=xlByRows,
> MatchCase:=Match_Case.Value
> End If
>
> El caso es que reconoce que existe una formula en la celda que evaluo
> pero no hace el reemplazo que le pido en ciertas celdas¿?
>
> He intentando realizar el reemplazo desde el propio menú de Excel:
>
> Buscar: "LLAMAR(G2;"
> Reemplazar por: "AnguloARadianes("
>
> Excel encuentra las ocurrencias de las celdas en las que aparece parte
> del texto de formula que busco, pero al darle al botón Reemplazar, sale
> el
> error "FUNCIÓN NO VÁLIDA" y no se produce el reemplazo (como en la
> macro,
> pero en la macro no da error alguno).
>
> Alguien me puede ayudar por favor????? Es urgente, llevo con el tema
> meses y nada de nada.
>
> Mil gracias de antemano. Mikel
>
>




Respuesta Responder a este mensaje
#4 KL
06/07/2005 - 11:05 | Informe spam
Hola Mikel,

Habiendo releido tus mensajes (poniendo especial atencion a los ejemplos) y
habiendo hecho multiples pruebas con el codigo que te he ofrecido, me
confirmo en la hipotesis que hice en mi ultimo posting - es que el criterio
de busqueda no cubre todas las posibles variaciones de la cadena de texto a
sustituir:

si el criterio de busqueda es "CALL(G2,"

obviamente las combinaciones donde la referencia de celda es distinta a G2
no se sustituran, p.ej.:

=...LLAMAR(G3;...LLAMAR(G3;...LLAMAR(G3;...

=...LLAMAR(G3;...LLAMAR(G3;...LLAMAR(G3;...

=...LLAMAR(G3;...LLAMAR(G3;...LLAMAR(G3;...LLAMAR(G3;...LLAMAR(G3;...LLAMAR(G3;...

=...LLAMAR(G3;...LLAMAR(G3;...

= LLAMAR(G7;...

Por lo tanto, si podemos asumir que el primer argumento de la funcion CALL
en tu hoja es siempre una referencia a celda y la columna de la celda es
invariablemente la [G], el codigo deberia incluir "CALL(G" como criterio de
busqueda y no "CALL(G2,"

Si, en cambio, la celda puede estar en cualquier columna, habra que
universalizar el criterio aun mas "CALL("

Finalmente, desconozco (por no haber usado nunca versiones de excel en otros
idiomas) si en caso de las formulas el metodo Replace requiere poner las
cadenas tal como aparecen en la hoja o en ingles. Por eso te recomiendo que
tambien pruebes modificar el criterio de busqueda para reflejar el nombre de
la funcion en castellano. Por ejemplo: "LLAMAR(G" o "LLAMAR("

Obviamente, en todos los casos (tanto con busqueda en ingles como en
castellano) tendras que modificar la cadena de reemplazo:

"AnguloARadiens(G" o "AnguloARadiens("

Saludos,
KL



"Mikel" wrote in message
news:u$
Hola KL:

He probado las 2 soluciones de código que me has dado:
La primera es igual a la que yo he desarrollado (aunq con menos código)
y el resultado es el mismo.
La segunda (la de Special Cells) no realiza la mayoria de reemplazos.
En ambos casos (y otras decenas de pruebas que estoy realizando)
muchísimas celdas quedan sin sustitución alguna. Al ejecutar la macro se
recorre todas las celdas y termina sin error alguno pero sin finalizar
bien su función (cientos de celdas sin sustituir).
La verdad es que ya no se qué es lo que puedo probar (creo que lo he
probado todo o casi todo).
Celdas como las siguientes (y decenas de ellas más) quedan sin sustituir:

=LLAMAR(G2;ASENO(COS(LLAMAR(G3;D115))*SENO(LLAMAR(G3;D95))/COS(LLAMAR(G3;D119))))

=LLAMAR(G2;ASENO(SENO(LLAMAR(G3;D95))*COS(LLAMAR(G3;D115))/COS(LLAMAR(G3;D114))))

=LLAMAR(G2;2*(ATAN(SENO(((LLAMAR(G3;D114)+LLAMAR(G3;D115))/2)*TAN((LLAMAR(G3;D125)+LLAMAR(G3;D95))/2)/COS((LLAMAR(G3;D114)-LLAMAR(G3;D115))/2)))))

=LLAMAR(G2;MAX(LLAMAR(G3;E135);LLAMAR(G3;E136)))

=LLAMAR(G7;H115;H116;H117;H118;H119)

..
..

La sustitución que intento realizar sobre las mismas, es la misma que me
diste en tu último mensaje (dentro de un bucle para realizar varios
reemplazos).

Mirad a ver si me podeis ayudar por favor. Gracias de nuevo. Mikel

KL wrote:

Hola Mikel,



Unas cuantas cosas:



1) Me temo, que si cambias de hilo para muchos sera dificil entender los
antecedentes a los que haces referncia :-)
2) Nunca has comentado si te ha funcionado el codigo que te di en el hilo
anterior y si no, que error obtienes.
3) Lo primero que salta a la vista es que tu macro usa el nombre
"AnguloARadiens" mientras que para la busqueda manual dices usar
"AnguloARadianes". Comprueba cual es el nombre verdadero de la funcion
personalizada.
4) Tambien parece que en la siguiente linea te has perdido unos cuantos
caracteres:



Replacement:="AnguloARadiens(, LookAt:=xlPart, _



que me imagino deberia ser algo asi:



Replacement:="AnguloARadiens(G2,", LookAt:=xlPart, _



y al final falta un 'End If'



5) Asimismo, si en el argumento Replacement estas omitiendo "G2,"
deliberadamente, piensa que el error puede deberse al numero incorrecto
de
argumentos.
6) Ordenando un poco tu codigo, pienso que algo como lo siguiente deberia
funcionar siempre y cuando el nombre de la funcion personalizada sea
"AnguloARadiens" y el numero de argumentos de la misma sea igual al de la
funcion CALL:



Sub Test1()
With ActiveCell
If .HasFormula Then
If Not .Find( _
What:="CALL(G2,", _
after:=ActiveCell, _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=True) _
Is Nothing Then
.Replace _
What:="CALL(G2,", _
Replacement:="AnguloARadiens(G2,", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=True
End If
End If
End With
End Sub



7) Tambien la parte codicional mas larga (la que detecta la presencia de
la
cadena "CALL(G2,") creo que podria eliminarse por innecesaria:



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



8) Finalmente, si el numero de celdas no contiguas que contienen formulas
en
tu hoja no supera 8000 (asi a ojo) tu codigo podria ser bastante mas
rapido
si usaras la propiedad SpecialCells, algo asi:



Sub Test3()
Dim rng as Range
On Error Resume Next
Set rng = _
ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
If rng Is Nothing Then Exit Sub
rng.Replace "CALL(G2,", "AnguloARadiens(G2,", , , False
End Sub



Saludos,
KL




"Mikel" wrote in message
news:
> Hola Grupo!
>
> Sigo con el mismo problema después de haber probado las sugerencias
> que
> me hacíais a mis preguntas. Detallo el problema:
>
> Tengo la siguiente macro (reemplaza parte de una formula por una
> funcion
> definida en una macro llamada AnguloARadianes):
>
> If ActiveCell.HasFormula Then
> If Not Selection.Find (What:="CALL(G2,",
> After:=ActiveCell,
> LookIn:=xlFormulas, _
> LookAt:=xlPart,
> SearchOrder:=xlByRows, SearchDirection:=xlNext, _
> MatchCase:=Match_Case.Value)
> Is
> Nothing Then
> Selection.Replace What:="CALL(G2,",
> Replacement:="AnguloARadiens(, LookAt:=xlPart, _
> SearchOrder:=xlByRows,
> MatchCase:=Match_Case.Value
> End If
>
> El caso es que reconoce que existe una formula en la celda que evaluo
> pero no hace el reemplazo que le pido en ciertas celdas¿?
>
> He intentando realizar el reemplazo desde el propio menú de Excel:
>
> Buscar: "LLAMAR(G2;"
> Reemplazar por: "AnguloARadianes("
>
> Excel encuentra las ocurrencias de las celdas en las que aparece parte
> del texto de formula que busco, pero al darle al botón Reemplazar, sale
> el
> error "FUNCIÓN NO VÁLIDA" y no se produce el reemplazo (como en la
> macro,
> pero en la macro no da error alguno).
>
> Alguien me puede ayudar por favor????? Es urgente, llevo con el tema
> meses y nada de nada.
>
> Mil gracias de antemano. Mikel
>
>




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