Listar todos los controles

26/06/2007 - 01:54 por José A. Castrejón | Informe spam
Hola buenas tardes, estoy haciendo una hoja de excel que tiene (sobre la
hoja, no dentro de un formulario) muchos controles (Labels, textbox y
combobox), los hice con la barra de herramientas "Cuadro de controles" y
entiendo que estos son objetos OLE...

quiero poner en una hoja ("Hoja1") los nombres y las propiedades Left,Top y
Width de todos los controles que estan en esa hoja.


Pense en hacer algo asi como :

dim C as control
For each c in me.controls
next

tambien probe con :
Dim N As Integer, Fila

With Worksheets("INICIO")
FILA = 1
For N = 1 To .OLEObjects.Count
Sheets("HOJA1").Cells(FILA, 1) = .OLEObjects.Name
Sheets("HOJA1").Cells(FILA, 2) = .OLEObjects.top

FILA = FILA + 1
Next N

End With

pero mis pruebas no han dado resultado y la verdad tampoco se mucho mas de
esto.
¿Es posible?

Saludos
José Antonio Castrejón
 

Leer las respuestas

#1 KL
26/06/2007 - 02:19 | Informe spam
Hola José A.,

"José A. Castrejón" wrote in message
news:
Hola buenas tardes, estoy haciendo una hoja de excel que tiene (sobre la
hoja, no dentro de un formulario) muchos controles (Labels, textbox y
combobox), los hice con la barra de herramientas "Cuadro de controles" y
entiendo que estos son objetos OLE...

quiero poner en una hoja ("Hoja1") los nombres y las propiedades Left,Top y
Width de todos los controles que estan en esa hoja.



Prueba esto:

Sub test()
Dim OLEobj As OLEObject
Dim i As Long
With Sheets("Hoja1")
With .Range("A1:E1")
.Value = Array("ID", "Name", "Left", "Top", "Width")
.Font.Bold = True
End With
For i = 1 To ActiveSheet.OLEObjects.Count
Set OLEobj = Sheets("INICIO").OLEObjects(i)
.Cells(i + 1, 1) = i
.Cells(i + 1, 2) = OLEobj.Name
.Cells(i + 1, 3) = OLEobj.Left
.Cells(i + 1, 4) = OLEobj.Top
.Cells(i + 1, 5) = OLEobj.Width
Next i
.Range("A1").CurrentRegion.EntireColumn.AutoFit
End With
End Sub


Saludos,
KL

Preguntas similares