Visual Basic para Aplicaciones - poner formato en todos los textbox de un formulario

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 9
Ha disminuido 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

poner formato en todos los textbox de un formulario

Publicado por Rafael (5 intervenciones) el 25/01/2019 23:21:57
Hola Buen día¡¡¡¡

tengo la siguiente situación ojala me puedan ayudar, estoy creando unos formularios en VBA Excel, resulta que uno de ellos cuenta con 90 Textbox (si ya se que loco) pero así es requerida la información, los textbox llevan formato por ejemplo unos se restringen a solo números, otros a mayúsculas y otros en formato de moneda y estos formatos se repiten a lo largo de todos es decir hay 30 que solo deben permitir números, otros 30 que deben estar en mayúscula y otros 30 que están en formato de moneda.

la cituacion es que estoy metiendo en cada uno de ellos los códigos para que queden como explique y como se han de imaginar es una cosa bien engorrosa........ :(

existe alguna manera de poner estos formatos a todos los textbox que así lo requieran de una sola vez sin tener que estar programando cada uno de ellos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de MIGUEL
Val: 424
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

poner formato en todos los textbox de un formulario

Publicado por MIGUEL (121 intervenciones) el 27/01/2019 18:00:54
Hola

Si hay forma de hacer lo que quieres, solo tienes que activar la "Herramientas-Referencia" de vba que dice "Microsoft Visual Basic for Applications Extencibility 5.3" después te vas a la interfaz del usuario "Archivo-Opciones-Centro de Confianza-Configuración del Centro de Confianza-Configuración de Macros" ahí verás una casilla que dice "Confiar en el acceso al modelo de objetos de proyectos de VBA" esto activará el "VBIDE" te permitirá crear-modificar-eliminar los módulos-userform-procedimientos-funciones a partir de un procedimiento sub, ⚠ ADVERTENCIA ⚠ AL ACTIVAR ESTO PODRÁS HACER MACROS PARA CREAR MÁS MACROS O CREAR PROCEDIMIENTOS EN LOS CONTROLES DE CUALQUIER USERFORM O MODULO O LIBRO O PÁGINA DE EXCEL Y ALGUIEN MAL INTENCIONADO PODRÁ DESTRUIR TODOS O ALGÚN PROYECTO SIN DIFICULTAD SIN IMPORTAR SI CONOCE TUS CONTRASEÑAS O NO Y SIN NECESIDAD DE TENER ABIERTO EL LIBRO Y SIN SIQUIERA ESTAR EN TU COMPUTADORA EL. PROGRAMA NO TE AVISARA DE NADA QUE TU U OTRA PERSONA HAGAN CON RESPECTO A ELIMINAR MODIFICAR O CREAR MÓDULOS USERFOR U OTRA COSA Y QUE ESA ACCIÓN DAÑE INCLUSO EL. SOFTWARE.

Para lo que quieres hacer es importante tener bien definidos los nombres de los texbox que se van a modificar por ejemplo txtT1 a txtT30 para los que son solo mayusculas y así con los demás ya que tendrás que crear un procedimiento con un ciclo do o for que identifique el. Nombre del texbox y así insertar en el evento keypress el código correcto para cada uno, de lo contrario tendrás que hacer una macro mucho más engorrosa que cambiar el formato manualmente.

Si el userform es solo para mostrar información, en los de formato moneda basta con indicarle que quieres visualizar la propiedad text de la celda por ejemplo: txtT1. Text=hoja1. Range("A1"). Text de esta forma si la celda tiene formato de moneda en el texbox aparecerá el formato de moneda $1,325.00

Piensa en si realmente es necesario activar lo anterior y si sigues adelante te ayudo a crear la macro para modificar los procedimientos keypress.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 9
Ha disminuido 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

poner formato en todos los textbox de un formulario

Publicado por Rafael (5 intervenciones) el 28/01/2019 03:32:44
hola, agardesco la información, es muy útil lo que me comentas pero veo que demasiado arriesgado, he intentado crear un modulo de clase donde le diga el código a ejecutar en cada uno pero no he podido hacerlo funcionar, creo que solo me quedara programar uno a uno jejejeje

de igual manera te agradesco
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MIGUEL
Val: 424
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

poner formato en todos los textbox de un formulario

Publicado por MIGUEL (121 intervenciones) el 28/01/2019 05:13:05
no se podra sin el VBIDE, te comparto una macro para insertar codigo en el evento beforesave del libro, seria el nivel facil comparado con lo que nesecitas para los texbox

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub crearProyecto()
    Dim miProyecto As VBIDE.VBProject
    Dim miComponente As VBIDE.VBComponent
    Dim codigoModulo As VBIDE.CodeModule
 
    Dim sCodigo As String
    Dim nLinea As Long
 
        Set miProyecto = ActiveWorkbook.VBProject
        Set miComponente = miProyecto.VBComponents("Thisworkbook")
        Set codigoModulo = miComponente.CodeModule
 
        sCodigo = " msgbox ""Prueba 5"",vbokonly"
 
        nLinea = codigoModulo.CreateEventProc("BeforeSave", "Workbook")
        nLinea = nLinea + 1
        codigoModulo.InsertLines nLinea, sCodigo
End Sub

SALUDOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar