ruta de ejecucion de una macro

12/07/2004 - 18:10 por jose | Informe spam
holas !!!

he hecho una macro en excel y he añadido una opcion al menu para que cuando
se pulse esa opcion me ejecute la macro.

el problema esta en que si cambio el archivo .xls de lugar ya no me
encuentra la macro, porque la ruta ha cambiado pero mantiene la ruta del
archivo al que he copiado.

¿alguien sabe como asignar una macro en una opcion del menu y aunque se
cambie de ubicacion el archivo siga funcionando y cuando se pulse al boton
se ejecute la macro ??

espero que se entienda, me he explicado lo mejor que se

gracias

Preguntas similare

Leer las respuestas

#1 David Canales
14/07/2004 - 22:12 | Informe spam
Cuando grabaste la macro, esta guardo una referencia al archivo incluyendo la
ruta al disco y carpeta donde originalmente estaba tu archivo. Tienes que editar
la macro en el editor de vba (Alt+F11) y dejar solamente el nombre del archivo
donde hace referencia al mismo.

Estando en el editor de vba busca en la ayuda informacion sobre Workbooks,
Worksheets, Activeworksheet. Comprender su uso te evitara problemas futuros como
el que estas enfrentando.

Saludos,

David Canales


"jose" wrote in message
news:VJyIc.236$
holas !!!

he hecho una macro en excel y he añadido una opcion al menu para que cuando
se pulse esa opcion me ejecute la macro.

el problema esta en que si cambio el archivo .xls de lugar ya no me
encuentra la macro, porque la ruta ha cambiado pero mantiene la ruta del
archivo al que he copiado.

¿alguien sabe como asignar una macro en una opcion del menu y aunque se
cambie de ubicacion el archivo siga funcionando y cuando se pulse al boton
se ejecute la macro ??

espero que se entienda, me he explicado lo mejor que se

gracias


Respuesta Responder a este mensaje
#2 jose
16/07/2004 - 17:24 | Informe spam
ok.

gracias por contestar.

un saludo.
"David Canales" escribió en el mensaje
news:
Ya estoy claro del problema que estas enfrentando: Cuando agregas un boton


a una
barra de herramientas y le asignas una macro tienes que decirle cual es el


libro
donde esta la macro y normalmente excel guarda en el archivo de las barras


de
herramientas la direccion del libro donde esta la macro. La solucion mas


simple
y practica para resolver esto es que guardes la macro relacionada con el


boton,
en el archivo de macros personal.xls. Dado que este libro siempre esta
disponible (tienes que haberlo creado antes) el boton siempre hallara la


macro
la cual debe hacer en su ejecucion referencia al libro activo o al nombre


del
libro y las hojas que tu especifiques.

Otra solucion es que el libro donde tienes la macro agregue una barra de
herramientas de manera dinamica tanto cuando se abra como cuando se active


y que
borre dicha barra cuando desactives el archivo (moverte a otro archivo


abierto)
o cierres el archivo. Esto lo logras poniendo codigo en ThisWorkbook y en


un
modulo normal de vba. A continuacion te pondre codigo con el que podras
experimentar y te servira de base para investigar y aprender un poco mas


sobre
este tema. La barra tiene dos botones que te presenta un MsgBox cada uno.


En
OnAction es donde pones el nombre de tu macro. Adicionalmente te envio un
archivo de excel (que obtuve en www.ozgrid.com) donde podras ver hasta 500
botones que tiene excel para poner en tu barra usando FaceId.

El siguiente codigo lo pones en ThisWorkbook:

Private Sub Workbook_Open()
AddBarra
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
DelBarra
End Sub

Private Sub Workbook_Activate()
AddBarra
End Sub

Private Sub Workbook_Deactivate()
DelBarra
End Sub

Y el siguiente codigo lo pones en modulo normal:

Sub AddBarra()
Dim Boton1 As CommandBarButton, Boton2 As CommandBarButton
On Error Resume Next
With Application.CommandBars.Add("NuevaBarra", , _
False, True)
.Visible = True
.Position = msoBarFloating
'.Position = msoBarTop 'Puedes usar otras tambien.
With .Controls
Set Boton1 = .Add(msoControlButton)
Set Boton2 = .Add(msoControlButton)
With Boton1
.Caption = "Boton 1"
.TooltipText = "Primer Boton"
.FaceId = 59
.OnAction = "Boton1"
End With
With Boton2
.Caption = "Boton 1"
.TooltipText = "Segundo Boton"
.FaceId = 276
.OnAction = "Boton1"
End With
End With
End With
End Sub

Sub DelBarra()
Dim CBControl As CommandBarControl
On Error Resume Next
With Application.CommandBars("NuevaBarra")
.Visible = False
.Delete
End With
End Sub

Sub Boton1()
MsgBox "Boton1"
End Sub

Sub Boton2()
MsgBox "Boton2"
End Sub


Saludos,

David Canales


"jose" wrote in message
news:jNyJc.1667$
> llevo varios dias con esto y no lo soluciono.
> David, mi macro es sencilla lo unico que hace es abrir un formulario
>
> Sub VerForm()
> UserForm1.Show vbModal
> End Sub
>
> y no entiendo eso de "dejar solamente el nombre del archivo
> > donde hace referencia al mismo.". Yo lo que hago es crear un menu en


la
> barra de herramientas que llame a la macro y como tu dices le pongo el
> nombre del archivo y la referencia al mismo, y lo guardo. el problema


esta
> en cuando copio ese archivo la ruta que se queda es la ruta originaria


del
> archivo. y por tanto cuando se le da a la opcion del menu da un error.
> Adjunto un par de capturas de cuando le añado la macro al menu.
>
> vamos, creo que el problema esta claro, pero no se como arreglarlo.
>
> "David Canales" escribió en el mensaje
> news:
> > Cuando grabaste la macro, esta guardo una referencia al archivo


incluyendo
> la
> > ruta al disco y carpeta donde originalmente estaba tu archivo. Tienes


que
> editar
> > la macro en el editor de vba (Alt+F11) y dejar solamente el nombre del
> archivo
> > donde hace referencia al mismo.
> >
> > Estando en el editor de vba busca en la ayuda informacion sobre


Workbooks,
> > Worksheets, Activeworksheet. Comprender su uso te evitara problemas
> futuros como
> > el que estas enfrentando.
> >
> > Saludos,
> >
> > David Canales
> >
> >
> > "jose" wrote in message
> > news:VJyIc.236$
> > > holas !!!
> > >
> > > he hecho una macro en excel y he añadido una opcion al menu para que
> cuando
> > > se pulse esa opcion me ejecute la macro.
> > >
> > > el problema esta en que si cambio el archivo .xls de lugar ya no me
> > > encuentra la macro, porque la ruta ha cambiado pero mantiene la ruta


del
> > > archivo al que he copiado.
> > >
> > > ¿alguien sabe como asignar una macro en una opcion del menu y aunque


se
> > > cambie de ubicacion el archivo siga funcionando y cuando se pulse al
> boton
> > > se ejecute la macro ??
> > >
> > > espero que se entienda, me he explicado lo mejor que se
> > >
> > > gracias
> > >
> > >
> >
> >
>
>
>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida