Excel - Cambios a Controles UserFrom VBA

 
Vista:

Cambios a Controles UserFrom VBA

Publicado por Eduardo R. (1 intervención) el 13/08/2019 21:12:53
Buen día:

Existe la forma de saber cuando precioso una tecla en cualquier control de un UserFrom (TextBox1_KeyPress o un TextBox1_AfterUpdate) en VBA Excel.

Actualmente estoy usando los eventos del control, esto llama un procedimiento que según el control que se este modificando realice las acciones deseadas... esto esta bien pero me obliga a crear el evento en cada control, y si son 100 controles tengo que crear 100 eventos que llamen el mismo procedimiento y si a esto le agrego otro evento ya serian 200 eventos(y así sucesivamente).

lo que estoy buscando y no he logrado encontrar nada, es detectar cuando se realiza un evento en cualquier control, esto me permitiría realizar una sola llamada por evento, y pasar a mi procedimiento los parámetros de que evento se trata y en que control se ejecuto.

Les agradezco, Saludos!!!
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 Alfredo
Val: 363
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Cambios a Controles UserFrom VBA

Publicado por Alfredo (120 intervenciones) el 13/08/2019 22:24:07
Hola Eduardo

Lo que pretendes se puede hacer sin problemas en VB.Net, solo haces un arreglo de controles y llamas a estos por su indice, PERO en VBA es mas engorroso, debes crear un modulo de clase donde crearas los controles con sus eventos, luego codificar cada control en la posición donde deseas que aparezcan y en el modulo de clase controlar los eventos según su indice.

En realidad si son el numero de controles que indicas, te llevara lo mismo que hacerlo individualmente ya que con esto solo copiando y pegando código en cada evento seria suficiente.

Te anexo un ejemplo para crear controles para que veas y te des una idea de lo que te menciono.

Saludos desde México
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 Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Cambios a Controles UserFrom VBA

Publicado por Andres Leonardo (1583 intervenciones) el 13/08/2019 23:50:32
en vb6 tambien se hace con matriz de controles, el problema es VBA lo constrolas con una variable.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
'Este es el procedimiento que deseas Validar ..... donde envias el control presionado 
Sub botonpresionado(cmd As CommandButton)
    MsgBox "El Boton presionado es " & cmd.Name
End Sub
 
 
'este es el clic del boton1 
Private Sub CommandButton1_Click()
    botonpresionado Me.CommandButton1
End Sub
 
'este es el clic del boton2
Private Sub CommandButton2_Click()
    botonpresionado Me.CommandButton2
End Sub
 
 
' Y asi lo hago en VBA si necesitas alguna otra ayuda .. con gusto ... lo unico que debes hacer es llamar el procedimiento o funcion
enviando el comando que presionas como parametro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Alfredo
Val: 363
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Cambios a Controles UserFrom VBA

Publicado por Alfredo (120 intervenciones) el 14/08/2019 00:38:21
Ingeniosa respuesta Andres, nunca lo había pensado de esa manera
Gracias por tus enseñanzas

Saludos cordiales
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 Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Cambios a Controles UserFrom VBA

Publicado por Andres Leonardo (1583 intervenciones) el 14/08/2019 00:56:44
jejeje de nada Alfredo, para eso es este foro para que todos aprendamos


Saludos desde Ecuador
Andres
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 Dirk
Val: 455
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Cambios a Controles UserFrom VBA

Publicado por Dirk (166 intervenciones) el 14/08/2019 15:51:52
Hola Eduardo, basado en el objetivo.... no en la eficiencia.... quizás esto te sirva.... crea un Sub que cree la llamada a los procedimientos de cada botón en la ventana Inmediato... luego copias de la ventana y pegas en el código.... repito... basado en el objetivo.... no en la eficiencia....

1
2
3
4
5
6
7
8
9
10
Sub crear_subs()
 
For i = 1 To 10
    Debug.Print "Sub CommandButton" & i & "_Click()"
    Debug.Print "call Procedimiento(Se Presiono el Boton" & i & ")"
    Debug.Print "End Sub"
 
Next
 
End Sub

Da pena... pero a veces estas cosas funcionan....

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Cambios a Controles UserFrom VBA

Publicado por Andres Leonardo (1583 intervenciones) el 14/08/2019 16:20:54
Es una idea que funcionaria para evitar escribir codigo ... una idea interesante.

Saludos
Andres
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 Dirk
Val: 455
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Cambios a Controles UserFrom VBA

Publicado por Dirk (166 intervenciones) el 14/08/2019 18:00:35
Que te puedo decir.... creo que fue Bill Gates que dijo "coloca a un perezoso a hacer una tarea aburrida o difícil y la hará de la forma mas fácil" claro... parafraseando sus palabras.... se oye raro pero con mucha razón.... también se pueden crear todos los botones (así sean 200 botones) en un Frame y recorrer el arreglo de botones o en vez de usar botones usar un ComboBox...

Salu2
Dirk
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