Origen de macro

Hol Buendia a todos
Necesito obtener el nombre de cuadro de texto que ejecuto la macro y poder obtener los datos que tiene dentro del cuadro de texto.
Muchas gracias por su apoyo

1 respuesta

Respuesta
1
Para obtener el nombre de un control tal como lo reconoce VBA lo mejor es que enciendas la grabadora (menú Herramientas, macros, grabar), selecciones tu objeto detengas la grabadora. Entrá al Editor y en un módulo tendrás 1 línea como esta:
Activesheet.Shapes(......).Select
Lo que está entre paréntesis es el nbre de tu objeto.
Para obtener el contenido o texto, este es un ejemplo:
Sub MacroShapes()
' Macro grabada el 04/05/2009 por Elsamatilde
'
ActiveSheet.Shapes("Text Box 6").Select
contenido = Selection.Text  
MsgBox contenido    'muestra el texto del control- Opcional
End Sub
Buen día Elsa
Primero que nada muchas gracias por tu atención, tiempo y ayuda. De verdad Gracias ¡
Mira tengo una hoja con tres objetos pero los tres mandan llamar la misma macro.
Mi intención es poder saber cual de los tres la lalmao ya si poder jalar un registro, no se si al ejecutar la macro se pueda pasar un argumenteo que me indique cual objeto la ejecuto.
De ante mano muchas gracias nuevamente por tu tiempo Elsa.
Si. Supongamos que usaste controles de la barra Cuadro de control o Activex.
Cada botón entonces tiene una rutina que empieza con: Private Sub Commandbutton1_click() 'el nbre del control y evento será el que hayas colocado
Y así para los otros 2 controles.
Es allí y antes de llamar a la macro que deberás colocar una variable que guarde el valor según el control.
Para el 1ro podes colocarla en 1, el oro en 2 y así. La variable se define al inicio del módulo como pública.
Tendrás entonces estas rutinas:
Private Sub commandbutton1_click()    
quienllama = 1
call macrounica
End Sub
Así con los 3. Y en un módulo:
Public quienllama as byte
Sub macrounica()
'instrucciones
End Sub
Si utilizaste controles de la barra formulario, tendrás que crear 1 macro a cada uno que a su vez llame a la macrounica.
Sub llamada1()    'rutina asociada al 1er botón
quienllama = 1
call macrounica
End Sub
Hechas las aclaraciones, solo me queda invitarte a descubrir el manual de Formularios: uso de controles en hoja o Userforms y más
Sdos
Elsa
Muchas Gracias Elsa ¡
Me parece una muy buena solución la que me recomendaste y si me ayudo a resolver mi problema.
Nuevamente muchas gracias ¡

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas