Hacer referencia a controles de multipage, page o frame

11/11/2006 - 04:32 por Ivan | Informe spam
Hola a todos

¿sabeis si existe alguna forma de hacer referencia a los controles
concretos contenidos en un multipagina, pagina y/o frame?

hasta ahora consgo listar todos los controles del formulario (incluso
los 'page', aunque los catalogue -con TypeName - como multipage), pero
no consigo que me de los contenidos en una pagina concreta ( aunque con
el frame y el mutipage no lo he probado, supongo que ocurrira lo
mismo).

he usado la prop. tag para crear una especie de indice y asi me apaño,
pero no se si habra algo mas sencillo

si podeis echarme una mano, oss lo agradezco

un saludo y hasta pronto
Ivan
 

Leer las respuestas

#1 Vinchenzo vinç
11/11/2006 - 12:55 | Informe spam
"Ivan" escribió en el mensaje news:
Hola a todos

¿sabeis si existe alguna forma de hacer referencia a los controles
concretos contenidos en un multipagina, pagina y/o frame?

hasta ahora consgo listar todos los controles del formulario (incluso
los 'page', aunque los catalogue -con TypeName - como multipage), pero
no consigo que me de los contenidos en una pagina concreta ( aunque con
el frame y el mutipage no lo he probado, supongo que ocurrira lo
mismo).

he usado la prop. tag para crear una especie de indice y asi me apaño,
pero no se si habra algo mas sencillo

si podeis echarme una mano, oss lo agradezco

un saludo y hasta pronto




Hola Iván,
si quieres obtener los controles contenidos en una página concreta de un control 'MultiPage', o de un 'Frame', o de cualquier control que pueda actuar como contenedor de controles, tan sólo tienes que recorrer la colección de controles del formulario, comparando la propiedad '.Parent' del objeto de cada iteración, mediante el operador 'Is', con el objeto del que quieres obtener la información.

La siguiente función debe recibir un objeto 'Control', y te devolverá una colección con los controles de primer nivel contenidos:

'********************
Public Function CtlsContenidos(ByRef objContainer As Control) As Collection
Dim oCtl As Control
Set CtlsContenidos = New Collection

For Each oCtl In Controls
If oCtl.Parent Is objContainer Then CtlsContenidos.Add oCtl
Next
End Function
'********************

Y las llamadas són tan simples como:
'==Dim oCtl As Control
Dim colCtls As Collection

'Obtenemos los controles contenidos en la página activa del MultiPage1:
Set colCtls = CtlsContenidos(Me.MultiPage1.Pages(Me.MultiPage1.Value)

Debug.Print colCtls.Count & " controles contenidos"
For Each oCtl In colCtls
Debug.Print vbTab & oCtl.Name
Next
'==

Saludos
( ! ) Respuestas precedentes en Google:
http://groups.google.com/group/micr...c.es.excel
( i ) Temperancia en el foro:
http://support.microsoft.com/defaul...newsreglas

Preguntas similares