Formulario- control

15/07/2007 - 00:22 por Desastres | Informe spam
Buenas noches.

¿ de la misma forma que de decimos Thisworkbook, activesheet ¿Hay alguna forma de decir :
active control.visible = false ( el que tiene el foco en este momento)
active frame.visible = false ( el que tiene el foco en este momento)

Saludos
José Luis

Preguntas similare

Leer las respuestas

#6 Desastres
25/07/2007 - 11:17 | Informe spam
Hola Ivan. Gracias.
Entre tus lineas

"> mientras vuelve Hector espero que no os moleste que meta baza,
**en absoluto. Se agradece toda ayuda, incuida la que no produzca adelantos(no es tu caso)

pero el otro dia, cuando vi la respuesta de Hector y me lie a probarla, en un principio tampoco


veia el sentido, creo que de puro sencillo que es el codigo, pero si te das cuenta, creo que es
totalmente descriptivo, sobre todo para esta parte de la consulta =>>

*** Me equivoque a la hora de mandar el codigo. deberia haber enviado otro ( solo varia que en el
marco dos, ademas del boton3 tengas tambien el marco3 ( y en éste nada). Por otro lado he activado
los eventos clic de c ada marco y el rusultado, es para mi, algo mas esclarecedor.Este es el código.

Private Sub CommandButton1_Click()
MsgBox "Hector-" & ActiveControl.Name
End Sub
Private Sub CommandButton2_Click()
If TypeName(ActiveControl) = "Frame" Then
MsgBox "Hector-" & Frame1.ActiveControl.Name
Else
MsgBox "Hector-" & ActiveControl.Name & vbCr
End If
MsgBox "Control activo " & ActiveControl.Name & _
vbCr & "Control activo del marco1 " & Frame1.ActiveControl.Name
End Sub

Private Sub CommandButton3_Click()
If TypeName(ActiveControl) = "Frame" Then
MsgBox "Hector-" & Frame1.ActiveControl.Name & vbCr & "Des-" & ActiveControl.Name
Else
MsgBox "Hector-" & ActiveControl.Name & vbCr & "Des-" & ActiveControl.Name
End If
MsgBox "Control activo " & ActiveControl.Name & _
vbCr & "Control activo del marco1 " & Frame1.ActiveControl.Name & _
vbCr & "Control activo del marco2 " & Frame2.ActiveControl.Name
End Sub

Private Sub Frame1_Click()
MsgBox "Control activo " & ActiveControl.Name & _
vbCr & "Control activo del marco1 " & Frame1.ActiveControl.Name
End Sub

Private Sub Frame2_Click()
MsgBox "Control activo " & ActiveControl.Name & _
vbCr & "Control activo del marco1 " & Frame1.ActiveControl.Name & _
vbCr & "Control activo del marco2 " & Frame2.ActiveControl.Name
End Sub

Private Sub Frame3_Click()
MsgBox "Control activo " & ActiveControl.Name & _
vbCr & "Control activo del marco1 " & Frame1.ActiveControl.Name & _
vbCr & "Control activo del marco2 " & Frame2.ActiveControl.Name
End Sub

Private Sub UserForm_Click()
MsgBox "Control activo " & ActiveControl.Name
End Sub


De todas formas probaré el tuyo, seguro que me aclara cosas

>>De lo que me dices deduzco que el hecho de que un control de un marco sea el control activo o


tenga foco excluye que el marco sea el control activo.

precisamente, y en mi opinion (que como tantas veces podria ser una ida de olla), el ej. viene a


demostrar exactamente lo contrario,

** Tambien es lo que yo creo, despues del codigo que mando

es decir que si un control es el activo su contenedor ha de ser por fuerza el contenedor activo


** así es se en el nivel que sea. Es decir Cada marco es el contenedor/control activo del de
hecho, y siguiendo con la comparacion frame/hoja-control/celda, y aunque tampoco es exactamente lo
mismo, en cierta manera, si tu intentas seleccionar una celda sin ser su hoja la activa te dara un
error, cosa que con los controles (no ocultos de la forma que sea) no ocurre a la hora de mandarles
el foco pero si lo estas haciendo desde un contenedor diferente,(creo que) atomaticamente te
seleccionara el contenedor en vez del control en si mismo, es un poco como el worksheet.activate
previo al range("a2").select

y a la hora de referirte al contenedor activo creo que simplemente tambien te valdria con


ActiveControl.Parent y para
verificar cual/que es este, estarian las comprobaciones que te comenta Hector

..y para terminar esta irrupcion, yo tambien me lie a hacer algunas adaptaciones del ej de Hector


(aunque me temo que
como siempre se me fue la mano, y quizas lie mas que aclare)y este ej. que pongo es (+/-, el


original no lo guardé) es una de ellas. Seguramente al final no aclare nada sobre lo que ya
aclaraba el de Hector, pero por
si quieres echarle un ojo ahi va:




Claro que se lo miraré

y aqui van los codigos --

Private Sub ComboBox1_Change()
End Sub



Aún así este ha sido un efecto secundario del problema que tenia. Pero eso lo postearé de nuevo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida