
¿Existe alguna manera de posicionar y dimensionar exactamente un nuevo botón de opción en VBA o en una macro?
El código que estoy usando inserta un nuevo botón de Opción en cada celda actualmente seleccionada dentro de una hoja de trabajo.
Si luego ejecuta el código nuevamente, insertará un segundo botón exactamente encima del primero.
También establece el tamaño de los botones de opción al de la celda seleccionada.
Lo que necesito poder hacer es indicar dentro del código la celda donde quiero que se inserte el nuevo botón de opción, F15, y establecer el tamaño exacto del botón y la posición izquierda/derecha y arriba/abajo.
Esto es para que el botón Opción siempre se inserte en la misma celda, en la misma posición y con el mismo tamaño cada vez.
Se puede hacer esto?
El código para crear/insertar el nuevo botón de opción es:
Sub AddOptionButton()
With ActiveSheet.OptionButtons.Add(Selection.Left, Selection.Top,
Selection.Width, Selection.Height)
.Name = "NewOptionButton"
.Caption = "Green"
End With
End Sub
Respuesta1
En general, desea evitar el uso de selecciones en el código.
Puedes asignar el rango a una variable y colocar el botón en ella:
Sub AddOptionButton()
Dim myRange as Range
Set myRange = Range("C3")
With ActiveSheet.OptionButtons.Add(myRange.Left, myRange.Top, myRange.Width, myRange.Height)
.Name = "NewOptionButton"
.Caption = "Green"
End With
End Sub
Pero quizás sería mejor pasar el rango a una función:
Function AddOptionButton(myRange as Range)
With ActiveSheet.OptionButtons.Add(myRange.Left, myRange.Top, myRange.Width, myRange.Height)
.Name = "NewOptionButton"
.Caption = "Green"
End With
End Function
Al cual puedes llamar desde cualquier lugar de tu Sub
:
Call AddOptionButton(Range("F15"))