Dudas de macros de excel

Hola a todos: Espero que alguien me pueda resolver algunas dudas que me han surgido trabajando con las macros de Excel.
¿Por qué cada vez que se ejecuta una macro de excel el botón de rehacer de la barra de herramientas estándar se desactiva?. ¿Es posible deshacer las operaciones realizadas por una macro?.
¿Se puede crear una macro para que solo pueda ser ejecutada en una hoja de cálculo específica?. ¿Cómo se puede realizar esto?
Y para terminar otra pregunta: ¿Es posible personalizar el pie de página para que aparezca la ruta y el nombre de archivo?

1 respuesta

Respuesta
1
Como dijo Jack el destripador, vamos por partes:
- UnDo de macros.
La imposibilidad de deshacer o rehacer una macro queda mostrada en la inhabilitación de sus respectivos botones.
En principio, no es posible deshacer lo que ejecuta una macro, por simple que fuese.
Razón suficiente para que yo haya adoptado -como conducta- grabar el archivo *antes* de ejecutar cualquier macro. Este es, sin duda, el mejor "undo" que conozco.
Sin embargo, existe la posibilidad de "fingir" una función "deshacer".
Si el inglés no es un obstáculo, te sugiero que veas este artículo:
http://j-walk.com/ss/excel/tips/tip23.htm
Allí se muestra cómo resolver este problema.
Básicamente, consiste en incorporar dentro de la macro una subrutina que guarde en una matriz el estado previo de las celdas a modificar. Luego otra rutina, disparada por el usuario, devuelve ese estado guardado.
Como verás, está lejos de ser automática. Yo me quedo con la práctica de guardar el archivo antes de ejecutar la macro.
Una alternativa es poner una línea de código dentro de esa macro, que grabe el archivo antes de modificar algo en la hoja.
- Macro para una hoja.
De hecho la declaración de una subrutina como privada en una hoja de Visual basic la circunscribe a tal hoja, pero personalmente prefiero ponerle un control antes de ejecutarse.
(Verás cómo en la respuesta a la tu siguiente pregunta)
- Dirección de archivo en pie de página.
Es absolutamente posible, pero debes hacerlo vía una macro de Visual Basic.
El siguiente código controla la hoja donde se está ejecutando la macro y, si coincide con la indicada, coloca al pie, centrado, la ruta y nombre de archivo:
Sub TuMacro()
If ActiveSheet.Name = "Hoja22" Then
'... código a ejecutar si coincide
ActiveSheet.PageSetup.CenterFooter = ActiveWorkbook.FullName
End If
End Sub
Esto debería responder todas tus preguntas. Si así fuera, agradeceré un comentario y que la finalices.
Aclarando qué entendí mal o qué faltó.
¿Por qué la gente del Tablón, nunca finaliza sus preguntas?
En virtud del tiempo invertido en esta pregunta, realmente, estoy interesado en saber si te sirvió.
¿Tuviste oportunidad de probarlo?
Por favor, coméntame y/o, simplemente, finaliza esta pregunta pendiente. (Otros pueden beneficiarse con esto)
Además, no te puede tomar más que 1 minuto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas