Aplicar macros a distintas hojas

Bueno la pregunta lo dice todo, necesito aplicar una macro a distintas hojas, ademas me gustaría saber si tengo en el mismo computador la planilla que contiene la macros, le puedo aplicar la macro a otros archivos de excel que contienen la mismas hojas pero con distintos nombres.
Ojala se entienda
Gracias.
Por ejemplo yo programe esto, y la hoja Planificación va a cambiar de nombre según la el día --> Planificacion_lunes, Planificacion_martes
Sub Comparar_Planificacion()
Dim Y1_Planificacion As Long
Dim X1_Planificacion As Integer
Dim Y3_K20 As Long
n = 300
For Y1_Planificacion = 1 To n
Do While Worksheets("Planificacion").Cells(Y1_Planificacion, 2) <> ""
X1_Planificacion = 2
Y3_K20 = 4
While Worksheets("K20").Cells(Y3_K20, 1) <> ""
If Worksheets("Planificacion").Cells(Y1_Planificacion, 8) = Worksheets("K20").Cells(Y3_K20, 1) Then
Worksheets("Planificacion").Cells(Y1_Planificacion, 15) = Worksheets("K20").Cells(Y3_K20, 22) * Worksheets("Planificacion").Cells(Y1_Planificacion, 3)
If Worksheets("K20").Cells(Y3_K20, 22) * Worksheets("Planificacion").Cells(Y1_Planificacion, 3) > 0 Then
Worksheets("Planificacion").Cells(Y1_Planificacion, 16) = Worksheets("K20").Cells(Y3_K20, 22) * Worksheets("Planificacion").Cells(Y1_Planificacion, 3) / 24
End If
X1_Planificacion = X1_Planificacion + 1
End If
Y3_K20 = Y3_K20 + 1
Wend
Y1_Planificacion = Y1_Planificacion + 1
Loop
Next Y1_Planificacion

1 Respuesta

Respuesta
1
Voy a tratar de aclarar algunos puntos antes de pasar a la rutina adjunta.
Una macro 'puede' ejecutarse para varias hojas. Estará colocada en un módulo al que accederás desde cualquier hoja. Solo habrá que tener presente de no utilizar el nombre de hoja, es decir en lugar de Sheets("Hoja2") utilizar por ej: ActiveSheet.
Si una macro será necesaria en varios libros, habrá que guardarla en un módulo del libro Personal, y nuevamente tener presente de no hacer mención a nombres de libros ni hojas, sino utilizar expresiones como ActiveWorkbook o ActiveSheet, salvo que esos nombres sean comunes en todos los libros.
Con estas aclaraciones, pasemos a tu rutina.
Estás utilizando 2 hojas: Planificación y K20. Si estas hojas no siempre tendrán estos nombres deberás reemplazarlas, ya sea utilizando ActiveSheet (hoja activa) o armando una cadena para el nombre.
Ej: dim cadena as string
cadena = "Planificacion_" & WEEKDAY(date()
Esto te devolverá hojas con nombres: Planificacion_1 para domingo. Pode´s convertir estos nros a nombres antes de armar la cadena.
Saludos
Elsa
PD) Más instrucciones y rutinas en manual 400MacrosPlus, desde:
http://es.geocities.com/lacibelesdepunilla/manuales

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas