Saltar al contenido

Macro para reemplazar valor en formula


Recommended Posts

publicado

Estimados, necesito hacer una macro para reemplazar valores automaticamente en una formula, que seria la siguiente:

=INDICE(Lista!C$2;COINCIDIR($B$8;Lista!A$2;0)) necesitaria que C$2; y A$2; sean reemplazados por $3, por $4, etc. y asi sucesivamente hasta un numero tal. Abajo dejo el ejemplo de como seria.

=INDICE(Lista!C$3;COINCIDIR($B$8;Lista!A$3;0))

=INDICE(Lista!C$4;COINCIDIR($B$8;Lista!A$4;0))

=INDICE(Lista!C$5;COINCIDIR($B$8;Lista!A$5;0)) etc...

Desde ya muchas gracias!!

 

publicado

Hola @viniciusm

Una opción sería cambiar los relativos de la fórmula, a los absolutos a la columna:

=INDICE(Lista!$C3;COINCIDIR($B$8;Lista!$A3;0))

O bien sin absolutos:

=INDICE(Lista!C3;COINCIDIR($B$8;Lista!A3;0))

Si optas por hacer via VBA con la fórmula que tienes entonces, puedes usar un ciclo:

(te dejo un Ejemplo, sin archivo estoy adivinando)

For i = 2 to 20

cells(i,4).Formulalocal = "=INDICE(Lista!C$" & i & ";COINCIDIR($B$8;Lista!A$ & i & ";0))"

next i

Espero sea de utilidad, Sigo atento.

 

publicado
Hace 35 minutos , Mauricio_ODN dijo:

Hola @viniciusm

Una opción sería cambiar los relativos de la fórmula, a los absolutos a la columna:

=INDICE(Lista!$C3;COINCIDIR($B$8;Lista!$A3;0))

O bien sin absolutos:

=INDICE(Lista!C3;COINCIDIR($B$8;Lista!A3;0))

Si optas por hacer via VBA con la fórmula que tienes entonces, puedes usar un ciclo:

(te dejo un Ejemplo, sin archivo estoy adivinando)

For i = 2 to 20

cells(i,4).Formulalocal = "=INDICE(Lista!C$" & i & ";COINCIDIR($B$8;Lista!A$ & i & ";0))"

next i

Espero sea de utilidad, Sigo atento.

 

Hola Mauricio, muchas gracias por tu ayuda, lo que no aclaré es que las formulas que hay que cambiar estan en hojas diferentes. Subo el archivo para explicarme mejor. En el archivo ya estan cambiadas las formulas manualmente utilizando la función Reemplazar.

Saludos!!

Informes.xlsm

publicado
Hace 2 horas, Mauricio_ODN dijo:

@viniciusm

Te envió un ejemplo para ver si es lo que necesitas, de ser así, lo programamos.

Saludos.Informes 1.1.xlsm

Hola Mauricio, si esta perfecto!! Si bien la Macro cumple su función me pone un error en la siguiente linea "? .Name = Left(C.Offset(, 1), 30)".

Saludos y gracias por tu ayuda!!

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.