Necesito asignar a un boton Active X un macro que abra un formular

19/11/2004 - 15:49 por Jorge de Panamá | Informe spam
Hola, he estado manejando información en una hoja de cálculo de Excel. El
único problema es que se me ha vuelto bastante tedioso tener que escribir
esta información en la misma hoja de cálculo. Se me ocurrio la idea de
asignar un boton active X a la hoja asi cuando sea que quisiera agregar
información solo tendría que presionar le botón y el macro asignado me
abriría el formulario.

El macro que tengo grabado es el siguiente:
Sub Macro6()
'
Range("A9").Select
ActiveSheet.ShowDataForm
End Sub

El problema es: cuando presiono sobre el botón me aparece un mensaje de
error que lee
Run time error ´1004´
ShowDataForm method of Worksheet class Failed

Alguien me podría ayudar para que el macro me abrá el formulario y no me
aparezca el mensaje de error?
 

Leer las respuestas

#1 Héctor Miguel
20/11/2004 - 01:41 | Informe spam
hola, Jorge !

... se me ha vuelto bastante tedioso ... escribir ... en la misma hoja de calculo.
... se me ocurrio la idea de ... un boton ... asi ... solo tendria que presionar le boton y ... me abriria el formulario.
Sub Macro6()
Range("A9").Select
ActiveSheet.ShowDataForm
End Sub
... problema: cuando presiono sobre el boton me aparece un mensaje de error que lee
Run time error ´1004´
ShowDataForm method of Worksheet class Failed
... que el macro me abra el formulario y no me aparezca el mensaje de error?



-> cuando 'pretendes' mostrar el formulario de una hoja [datos / formulario...] ->por codigo<-...
excel 'trata' de encontrar un nombre de rango que haga referencia a la 'base de datos'...
o [si no lo encuentra]... 'busca' en la hoja ->a partir del rango 'A1'<-

las 'alternativa' [que veo] para que 'funcione SIN errores' el formulario de datos por codigo, son...
o... MOVER la base de datos para que inicie en 'A1'
o... usar un objeto 'commandbar' [simulando la ejecucion de: -menu- datos / formulario...]
[obviamente, la hoja 'activa' DEBE ser la 'correcta Y la celda 'activa' estar dentro de la base de datos]

1.- si te 'decides' por mover la base de datos a 'A1'...
podrias 'presentar' el formulario ->de cualquier hoja<- [si existe] DESDE cualquiera otra como 'activa' [p.e.]
si estas en hoja2 y quieres mostrar el formulario de hoja1...
Worksheets("Hoja1").ShowDataForm

2.- si 'prefieres/necesitas' DEJAR la base de datos 'donde esta'... ['tendras que']...
-> activar la hoja Y una celda 'apropiadas' y...
-> ejecutar el comando [datos / formulario...] ->por codigo<- +/- como sigue...
Worksheets("Hoja1").Select
Range("a9").Select
Application.CommandBars.FindControl(Id:†0).Execute

encontraras la explicacion de este 'comportamiento' en la siguiente pagina...
http://support.microsoft.com/defaul...es;e110462
El metodo ShowDataForm provoca un fallo si no se encuentran datos
[traduccion automatica al español]

saludos,
hector.

Preguntas similares