Foros del Web » Soporte técnico » Ofimática »

Macro que inserte varios optionbuttons

Estas en el tema de Macro que inserte varios optionbuttons en el foro de Ofimática en Foros del Web. Como puedo insertar 4 optionbutton (OLEObjects) en mi hoja de calculo de excel utilizando una estructura for next???? los controles deben estar ordenados uno debajo ...
  #1 (permalink)  
Antiguo 14/03/2008, 09:11
 
Fecha de Ingreso: marzo-2008
Mensajes: 23
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Macro que inserte varios optionbuttons

Como puedo insertar 4 optionbutton (OLEObjects) en mi hoja de calculo de excel utilizando una estructura for next???? los controles deben estar ordenados uno debajo del otro mas o menos sobre la columna A

E intentado muchos codigos que utilizan el sig fragmento:

Worksheets("Hoja1").OLEObjects.Add(ClassType:="For ms.OptionButton.1", _
Left:=ranRondaApuestasCuerpoGris.Left, Top:=ranRondaApuestasCuerpoGris.Top +
ranRondaApuestasCuerpoGris.Height * i / 4, _
Width:=ranRondaApuestasCuerpoGris.Width, _
Height:=ranRondaApuestasCuerpoGris.Height * 0.25)

Donde i es la variable (integer utilizado como contador) que utilizo en la estructura for next.

ranRondaApuestasCuerpoGris es un objeto rango que tiene cierto tamaño (filas x columnas)

EL CODIGO SE EJECUTA PERO NO ME APARECE NADA EN LA HOJA DE CALCULO!!!!

Que es lo que sucede? como hago que funcione????

AYUDA PLEASE
  #2 (permalink)  
Antiguo 14/03/2008, 09:51
Avatar de abrahamvj  
Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 708
Antigüedad: 17 años, 9 meses
Puntos: 18
Re: Macro que inserte varios optionbuttons

Pues, esto resulta:

For t = 3 To 123 Step 12
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Optio nButton.1", Link:=False, _
DisplayAsIcon:=False, Left:=84, Top:=t, Width:=21.75, Height _
:=16.5).Select

Next

Abraham
  #3 (permalink)  
Antiguo 14/03/2008, 12:45
 
Fecha de Ingreso: marzo-2008
Mensajes: 23
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Re: Macro que inserte varios optionbuttons

gracias abraham si funciona tu codigo y muy bien. Pero como haces si al metodo Add quieres pasarle alguna de las propiedades , Left, Top, Width o Height utilizando variables?????

te lo digo porque mi codigo sigue sin funcionar , aca te lo dejo para que lo chekes:


Sub NoFunciona()

Dim ranRondaApuestasCuerpoGris As Range
Dim i As Integer

Set ranRondaApuestasCuerpoGris = Range("A1:B8")

For i = 0 To i = 3

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Optio nButton.1", _
Left:=ranRondaApuestasCuerpoGris.Left, Top:=ranRondaApuestasCuerpoGris.Top + _
ranRondaApuestasCuerpoGris.Height * i / 4, _
Width:=ranRondaApuestasCuerpoGris.Width, _
Height:=ranRondaApuestasCuerpoGris.Height * 0.25).Select

Next i

End Sub

Fijate que solo agrega el primer optionbutton y los otros nada, simplemente no aparesen!!!!!!

El programa se ejecuta pero solo aparece el primer comando. La verdad no se por que no funciona me ayudas ?????

Ahora fijate que esto si funciona:

Sub SiFunciona()

Dim ranRondaApuestasCuerpoGris As Range
Dim i As Integer

Set ranRondaApuestasCuerpoGris = Range("A1:B8")

i = 0

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Optio nButton.1", _
Left:=ranRondaApuestasCuerpoGris.Left, Top:=ranRondaApuestasCuerpoGris.Top + _
ranRondaApuestasCuerpoGris.Height * i / 4, _
Width:=ranRondaApuestasCuerpoGris.Width, _
Height:=ranRondaApuestasCuerpoGris.Height * 0.25).Select

i = 1

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Optio nButton.1", _
Left:=ranRondaApuestasCuerpoGris.Left, Top:=ranRondaApuestasCuerpoGris.Top + _
ranRondaApuestasCuerpoGris.Height * i / 4, _
Width:=ranRondaApuestasCuerpoGris.Width, _
Height:=ranRondaApuestasCuerpoGris.Height * 0.25).Select

i = 2

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Optio nButton.1", _
Left:=ranRondaApuestasCuerpoGris.Left, Top:=ranRondaApuestasCuerpoGris.Top + _
ranRondaApuestasCuerpoGris.Height * i / 4, _
Width:=ranRondaApuestasCuerpoGris.Width, _
Height:=ranRondaApuestasCuerpoGris.Height * 0.25).Select

i = 3

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Optio nButton.1", _
Left:=ranRondaApuestasCuerpoGris.Left, Top:=ranRondaApuestasCuerpoGris.Top + _
ranRondaApuestasCuerpoGris.Height * i / 4, _
Width:=ranRondaApuestasCuerpoGris.Width, _
Height:=ranRondaApuestasCuerpoGris.Height * 0.25).Select

End Sub


pero cuando tratas de meterlo todo dentro de una estructura for next el programa se ejecuta pero solo coloca el primer optionbutton!!!!!

porque??????

como lo puedo hacer?????? me estoy volviendo loco jaja
  #4 (permalink)  
Antiguo 14/03/2008, 14:45
Avatar de abrahamvj  
Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 708
Antigüedad: 17 años, 9 meses
Puntos: 18
Re: Macro que inserte varios optionbuttons

Pues, simplemente tu FOR estaba mal planteado:

Sub NoFunciona()

Dim ranRondaApuestasCuerpoGris As Range
Dim i As Integer

Set ranRondaApuestasCuerpoGris = Range("A1:B8")

For i = 0 To 3

ActiveSheet.OLEObjects.Add(ClassType:="Forms.Optio nButton.1", _
Left:=ranRondaApuestasCuerpoGris.Left, Top:=ranRondaApuestasCuerpoGris.Top + _
ranRondaApuestasCuerpoGris.Height * i / 4, _
Width:=ranRondaApuestasCuerpoGris.Width, _
Height:=ranRondaApuestasCuerpoGris.Height * 0.25).Select

Next i

End Sub

Abraham
  #5 (permalink)  
Antiguo 15/03/2008, 12:09
 
Fecha de Ingreso: marzo-2008
Mensajes: 23
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Macro que inserte varios optionbuttons

Pues tienes razon jaja. Se nota que soy nuevo en esto de la programacion que tarado como no me di cuenta. Simplemente que ponia un "i =" de mas jaja.

No sabes lo mal que me tenia ya me estaba volviendo loco, es increible como las cosas mas simples a veces se vuelven un dolor de cabeza y todo por no prestar un poco mas de atencion jajaj. Mil gracias viejo te debo una
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:35.