Visual Basic - repetir proceso en varias hojas

Life is soft - evento anual de software empresarial
 
Vista:

repetir proceso en varias hojas

Publicado por Carlos (1 intervención) el 12/12/2012 10:50:22
Hola, tengo una consulta.

tengo una macro que se ejecuta sobre una hoja de un libro, pero para ejecutarla en otra hoja del mismo libro, tengo que cambiar el nombre que esta vinculado a una celda, mi pregunta es si es posible tener los nombres de todas las hojas en una lista de tal forma que la macro se genere en la primera hoja, luego en la segunda, asi sucesivamente, sin necesidad de estar cambiando el nombre?? trabajo con varios libros y no todos tienen la misma cantidad de hojas.

Gracias por el apoyo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

repetir proceso en varias hojas

Publicado por Daniel (61 intervenciones) el 20/12/2012 19:25:38
deberias consultar en el foro de EXCEL.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

repetir proceso en varias hojas

Publicado por José Humberto (4 intervenciones) el 05/01/2013 23:02:34
Hola Carlos !!!
Me imagino varias alternativas, pero las más breves de explicar son las siguientes:
si quieres una lista con el nombre de las hojas, puedes hacerlo con una matriz

dim MiMatriz (10) as string ' 10 es el numero máximo de la lista, tendras que ir incrementando se ser necesario.

luego con un for Next puedes ejecutar la macro en cada una de las hojas de la lista
MiMatriz(1) = "Hoja-1"
MiMatriz(2) = "Hoja-2"
' Y así sucesivamente hasta completar los díez elementos

for x= 1 to 10
sheets(MiMatriz(x)).select
run Mimacro
next

la otra alternartiva y más fácil. es poner en orden todas las hojas que vas a procesar con la macro y hacer un for..next con los numeros seguidos

suponiendo que pones en orden las hojas que se van a procesar y quedan de la 3 a la 12

entonces el codigo sería de la siguiente manera:

For x = 3 to 12
sheets(x).select
run MiMacro
Next

Me despido, agradeceré tus comentarios en casode que este ejemplo te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar