Insertar código en macro

Hola... Precisamente usted me resolvió un problema que tenía (cómo poner en pie de página algo escrito en una celda) a través de este código:
Sub PonPieDePagina()
With ActiveSheet.PageSetup
.LeftFooter = Range("G1").Value
.CenterFooter = Value & " &P"
End With
End Sub
Yo tengo una macro que incluye algún paso anterior a lo del Pie de página, y algún paso posterior. Esos pasos los voy grabando, cosa que no sucede con la parte resuelta a través de VBA... Obviamente, deseo enlazar todo en una sola macro, pero me hago un lío con los códigos. ¿Me podría decir cómo resolverlo?
Gracias.

1 Respuesta

Respuesta
1
Lo más fácil es hacer una macro que vaya llamando a las que ya tienes. Si por ejemplo tus macros anterior y posterior se llaman PasosAnteriores y PasosPosteriores, puedes hacer la macro que compile todo como:
Sub MacroCompleta ()
  call PasosAnteriores ()
  call PonPieDePagina()
  call PasosPosteriores ()
end sub
Y ejecutando esta macro se irán llamando sucesivamente cada uno de los pasos. Como has grabado las macros, no tienen parámetros. Pero por facilidad para mantener el código podrías necesitarlos, creando así funciones o procedimientos con parámetros que puedas utilizar. Por ejemplo si los "pasos anteriores" debieran efectuarse en una página sólo, podrías pasar el número de página como parámetro.
En la definición escribirías algo como Sub PasosAnterioes (pag as Integer) y en la llamada
call PasosAnteriores (3) 'esto es para la página 3.
Caso que sea una función con un resultado tras un cálculo, por ejemplo calcular número de palabras de una página, sería:
Function CalcularPalabras (pag as Integer) as Integer
Y para llamarlo suponiendo que has definido una variable llamada nump como entero:
Nump = CalcularPalabras(3) 'calcula las palabras de la hoja 3.
¿Por qué te cuento esto (a parte por culturilla)? Bien, solo puedes ejecutar como macro principal una que no tenga parámetros, aunque tanto funciones como procedimientos com parámetros te serán muy útiles si tienes una correcta estructura de tu programa. Si todo lo anterior te lía, simplemente olvidate de ello y haz solo la macro que llama al resto.
Lo he puesto en práctica con un ejemplo sencillo (me refiero a las macros anterior y posterior) y ha funcionado... Era lo que buscaba (lo aplicaré a las macros reales cuando las termine). Muchísimas gracias (otra vez).
Un saludo cordial.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas