Modificar formulas de Excel con Macro

29/01/2010 - 11:21 por valoro | Informe spam
Tengo una hoja de Excel con una tabla de gran tamaño en la que existen
muchas fórmulas (aunque no todas) que estan vinculadas con una
aplicación de contabilidad. Las fórmulas son del tipo:

=DIM|A!'SALDOM(2,2;6000003)'

=DIM|B!'SALDOM(2,2;608)'

=DIM|23!'SALDOFINAL(2,2;61005)'

De los tres ejemplos anteriores observar que entre los caracteres |
y ! van uno o varios dígitos: A, B o 23, por ejemplo.

Al final va una cuenta de contabilidad que puede tener más o menos
dígitos.

Y el concepto puede ser SALDOM (saldo medio), SALDOFINAL, o cualquier
otro concepto.

Lo que necesito es poder cambiar en todoas las cuentas de la hoja el
dígito que va entre el simbolo | y el simbolo !. Y hacer esto de forma
automática, ya que a mano tendría que ir editando cada celda y
modificando ese caractes de cada fórmula, y son muchas.

He intentado una macro trabajando con objetos de rango y una
estructura

FOR EACH celda IN rango
NEXT

y trabajando con FormulaLocal pero no he conseguido dar con la
solución.

Gracias por vuestro tiempo.

Andrés

Preguntas similare

Leer las respuestas

#1 Xavier Budet Graco
29/01/2010 - 19:37 | Informe spam
Hola Andrés, yo no te puedo ayudar con VBA porque mi nivel es bajo pero por si no aparece otra solución... teniendo en cuenta que el tema con fórmulas siempre es complicado podrías hacerlo con "Buscar y Reemplazar".

Inconveniente que habrás de hacer una búsqueda para cada referencia distinta, en el caso que expones sería una para |A!' otra para |B!' y otra para |23!' o sea que si tienes muchas seguirá siendo laborioso, pero siempre mucho más fácil y rápido que con Edición.

Saludos,

Xavier

Quitar MAC para contestar. Gracias.

"valoro" escribió en el mensaje news:
Tengo una hoja de Excel con una tabla de gran tamaño en la que existen
muchas fórmulas (aunque no todas) que estan vinculadas con una
aplicación de contabilidad. Las fórmulas son del tipo:

=DIM|A!'SALDOM(2,2;6000003)'

=DIM|B!'SALDOM(2,2;608)'

=DIM|23!'SALDOFINAL(2,2;61005)'

De los tres ejemplos anteriores observar que entre los caracteres |
y ! van uno o varios dígitos: A, B o 23, por ejemplo.

Al final va una cuenta de contabilidad que puede tener más o menos
dígitos.

Y el concepto puede ser SALDOM (saldo medio), SALDOFINAL, o cualquier
otro concepto.

Lo que necesito es poder cambiar en todoas las cuentas de la hoja el
dígito que va entre el simbolo | y el simbolo !. Y hacer esto de forma
automática, ya que a mano tendría que ir editando cada celda y
modificando ese caractes de cada fórmula, y son muchas.

He intentado una macro trabajando con objetos de rango y una
estructura

FOR EACH celda IN rango
NEXT

y trabajando con FormulaLocal pero no he conseguido dar con la
solución.

Gracias por vuestro tiempo.

Andrés
Respuesta Responder a este mensaje
#2 valoro
29/01/2010 - 22:03 | Informe spam
Gracias Xavier.

La idea es utilizar una macro para automatizar el proceso lo máximo
posible. Agradezco tu aporte.

Ya he logrado dar con la solución utilizando macros, a base de
funciones de cadena.

Andrés



On 29 ene, 19:37, "Xavier Budet Graco" wrote:
Hola Andrés, yo no te puedo ayudar con VBA porque mi nivel es bajo pero por si no aparece otra solución... teniendo en cuenta que el tema con fórmulas siempre es complicado podrías hacerlo con "Buscar y Reemplazar".

Inconveniente que habrás de hacer una búsqueda para cada referencia distinta, en el caso que expones sería una para |A!' otra para |B!' y otra para |23!' o sea que si tienes muchas seguirá siendo laborioso, pero siempre mucho más fácil y rápido que con Edición.

Saludos,

Xavier

Quitar MAC para contestar. Gracias.

"valoro" escribió en el mensajenews:
Tengo una hoja de Excel con una tabla de gran tamaño en la que existen
muchas fórmulas (aunque no todas) que estan vinculadas con una
aplicación de contabilidad. Las fórmulas son del tipo:

=DIM|A!'SALDOM(2,2;6000003)'

=DIM|B!'SALDOM(2,2;608)'

=DIM|23!'SALDOFINAL(2,2;61005)'

De los tres ejemplos anteriores observar que entre los caracteres |
y ! van uno o varios dígitos: A, B o 23, por ejemplo.

Al final va una cuenta de contabilidad que puede tener más o menos
dígitos.

Y el concepto puede ser SALDOM (saldo medio), SALDOFINAL, o cualquier
otro concepto.

Lo que necesito es poder cambiar en todoas las cuentas de la hoja el
dígito que va entre el simbolo | y el simbolo !. Y hacer esto de forma
automática, ya que a mano tendría que ir editando cada celda y
modificando ese caractes de cada fórmula, y son muchas.

He intentado una macro trabajando con objetos de rango y una
estructura

FOR EACH celda IN rango
NEXT

y trabajando con FormulaLocal pero no he conseguido dar con la
solución.

Gracias por vuestro tiempo.

Andrés
Respuesta Responder a este mensaje
#3 Héctor Miguel
30/01/2010 - 05:33 | Informe spam
hola, Andrés !

comenta como y que has intentado, lo que obtienes y lo que esperabas (NO "conceptualmente" sino exactamente)
indica el rango (y si se puede, la formula "completa") y los cambios que necesitas hacer

(aunque no me imagino como trabaje una formula sin referencias a rangos, sino a terminos de "otra aplicacion" -???-)

saludos,
hector.

__ OP __
Tengo una hoja de Excel con una tabla de gran tamaño en la que existen muchas formulas (aunque no todas)
que estan vinculadas con una aplicacion de contabilidad. Las formulas son del tipo:
=DIM|A!'SALDOM(2,2;6000003)'
=DIM|B!'SALDOM(2,2;608)'
=DIM|23!'SALDOFINAL(2,2;61005)'
De los tres ejemplos anteriores observar que entre los caracteres | y ! van uno o varios digitos: A, B o 23, por ejemplo.
Al final va una cuenta de contabilidad que puede tener mas o menos digitos.
Y el concepto puede ser SALDOM (saldo medio), SALDOFINAL, o cualquier otro concepto.
Lo que necesito es poder cambiar en todoas las cuentas de la hoja el digito que va entre el simbolo | y el simbolo !.
... esto de forma automatica, ya que a mano... ir editando cada celda y modificando ese caractes de cada farmula... son muchas.
He intentado una macro trabajando con objetos de rango y una estructura
FOR EACH celda IN rango
NEXT
y trabajando con FormulaLocal pero no he conseguido dar con la solucion.
Respuesta Responder a este mensaje
#4 Gabriel Raigosa
30/01/2010 - 05:43 | Informe spam
Hola Xavier,

Me sumo a ti mi nivel de VBA es bajo

Yo muchas soluciones se podrían lograr con Funciones y unos pocos comandos..

Gabriel


Xavier Budet Graco escribió:
Hola Andrés, yo no te puedo ayudar con VBA porque mi nivel es bajo pero por si no aparece otra solución... teniendo en cuenta que el tema con fórmulas siempre es complicado podrías hacerlo con "Buscar y Reemplazar".

Inconveniente que habrás de hacer una búsqueda para cada referencia distinta, en el caso que expones sería una para |A!' otra para |B!' y otra para |23!' o sea que si tienes muchas seguirá siendo laborioso, pero siempre mucho más fácil y rápido que con Edición.

Respuesta Responder a este mensaje
#5 Xavier Budet Graco
30/01/2010 - 11:52 | Informe spam
Hola Gabriel, tienes razón yo lo he intentado con funciones desde la propia hoja de cálculo... pero para cambiar el contenido de celdas es sencillo de hacer y explicar pero con el contenido de fórmulas es complicado.

Saludos,

Xavier

Quitar MAC para contestar. Gracias.

"Gabriel Raigosa" escribió en el mensaje news:
Hola Xavier,

Me sumo a ti mi nivel de VBA es bajo

Yo muchas soluciones se podrían lograr con Funciones y unos pocos comandos..

Gabriel


Xavier Budet Graco escribió:
Hola Andrés, yo no te puedo ayudar con VBA porque mi nivel es bajo pero por si no aparece otra solución... teniendo en cuenta que el tema con fórmulas siempre es complicado podrías hacerlo con "Buscar y Reemplazar".

Inconveniente que habrás de hacer una búsqueda para cada referencia distinta, en el caso que expones sería una para |A!' otra para |B!' y otra para |23!' o sea que si tienes muchas seguirá siendo laborioso, pero siempre mucho más fácil y rápido que con Edición.

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