Saltar al contenido

Macro para abrir formulario...


commdp

Recommended Posts

publicado

Buenas, necesito resolver esta macro simple, voy hasta base definida con "nombre" y luego quiero que abra el formulario que está en "Datos"..."Formulario..." para que ingresen los datos por ahí. Pero se frena en ShowDataForm creo que esta macro es para 2007 y yo trabajo con el 2003. La idea es que se abra el formulario y se termine la macro.

Sub auto_openForm()

' Activate the sheet that contains your database.

Worksheets("Hoja3").Activate

Application.Goto Reference:="base"

' Show the data form for the selected range.

ActiveSheet.ShowDataForm

End Sub

desde ya muchas gracias.

publicado

Hola:

¿Que es 'base'? No olvides que dada la instrucción que usas 'ActiveSheet.ShowDataForm' obliga a que la hoja activa tenga los encabezados ubicados, al menos, en el rango "A1:B2" de lo contrario dará un error.

Abraham

publicado

gracias por la respuesta.

No entiendo el funcionamiento de excel. el Nombre "base" selecciona una rango que es una 'base de datos' con rotulos. Una vez seleccionado esta base, si clickeo el botón Formulario.... lo abre correctamente (forma manual), pero cuando se ejecuta la macro no toma en cuenta la selección y abre el formulario con la celda A1 que solo tiene un titulo (previo mensaje que pide que "acepte" si la primera fila son rotulos".

De todas formas gracias.

publicado

Hola nuevamente:

Por eso la importancia de preguntarte sobre 'Base'. Como ya te comente cuando usas 'ActiveSheet.ShowDataForm' de manera obligatoria los datos deben tener los rótulos al menos entre el rango "A1:B2" y por lo que comentas tu rango 'Base' no coincide con eso, ¿cierto?. Ah, es bueno recordar que si bien el VBA viene integrado en el Excel, este de por si es un lenguaje de programación independiente y funciona con el Excel porque es orientado a objetos, lo que no quita que tenga sus propios modos de hacer las cosas :chuncky: ¿como lo solucionamos? Pues emulemos presionar el dicho botón 'Formulario':


Application.CommandBars.FindControl(ID:=860).Execute
[/CODE]

Con eso ya no tendrás problemas.

Abraham

publicado

Muchísimas gracias por su tiempo, avalencia.

aprovechando su sapiencia, una consulta boba, porque cuando grabo la macro no hace esta emulación, sino que transcribe la otra secuencia???

saludos y gracias de nuevo.

publicado

Yo soy de los que creen que ninguna consulta o pregunta es boba, al contrario si no preguntamos o leemos, obviamente no aprendemos.

La grabadora de macros captura acciones y las interpreta, pero en esta captura no necesariamente se toma en cuenta las acciones ejercidas sobre ciertos objetos como el caso del botón 'Formulario', es más, nuestra querida grabadora no logra capturar todas las acciones que se pueden realizar en el Excel aunque realmente es de gran ayuda sobre todo cuando comenzamos con el VBA

Abraham

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.