En más de una ocasión me han preguntado por la forma de insertar mediante programación diferentes controles de formulario en celdas de nuestra hoja de cálculo Excel.
Básicamente la idea es automatizar la creación de plantillas o modelos en nuestras hojas.
Veremos qué tan sencillo es.
Nuestra macro la creamos en un módulo estándar de nuestro libro de trabajo.
Como observamos la primera sentencia
.CheckBoxes.Add
nos permite situar el control respecto de la ubicación actual de una celda concreta (en el ejemplo B1), asignándole además de las propiedades .Top y .Left otras dos habituales (Alto-Height y Ancho-Width).
En el siguiente grupo de instrucciones nos lanzamos a completar algunas de las propiedades que encontraríamos en el Formato de Control:
1-Valor (.Value)
2-Celda vinculada (.LinkedCell)
3-Sombreado 3D (.Display3DShading)
4-El Texto mostrado (.Caption)
5-y el más importante el nombre del control!! (.Name)
Con la macro explicada estamos listos para ejecutarla, obteniendo el siguiente resultado en nuestra Hoja1:
Básicamente la idea es automatizar la creación de plantillas o modelos en nuestras hojas.
Veremos qué tan sencillo es.
Nuestra macro la creamos en un módulo estándar de nuestro libro de trabajo.
Sub InsertarControlFormularioCheckBox() 'añadimos un control de formulario tipo CheckBox 'en una celda concreta de nuestra hoja de cálculo Sheets("Hoja1").CheckBoxes.Add(Left:=Range("B1").Left, _ Top:=Range("B1").Top, _ Width:=Range("B1:C1").Width, _ Height:=Range("B1").Height).Select 'asignamos propiedades a este CheckBox With Selection .Name = "ChkBoxUNO" 'Damos nombre al Control .Caption = "Test Añadir CheckBox" 'Texto a desplegar .LinkedCell = "D1" 'cuál es la celda vínculada .Value = xlOn 'devuelve valor Marcado-Verdadero(Marcado/Desmarcado) .Display3DShading = True 'por estética damos formato de sombra 3D End With End Sub
Como observamos la primera sentencia
.CheckBoxes.Add
nos permite situar el control respecto de la ubicación actual de una celda concreta (en el ejemplo B1), asignándole además de las propiedades .Top y .Left otras dos habituales (Alto-Height y Ancho-Width).
En el siguiente grupo de instrucciones nos lanzamos a completar algunas de las propiedades que encontraríamos en el Formato de Control:
1-Valor (.Value)
2-Celda vinculada (.LinkedCell)
3-Sombreado 3D (.Display3DShading)
4-El Texto mostrado (.Caption)
5-y el más importante el nombre del control!! (.Name)
Con la macro explicada estamos listos para ejecutarla, obteniendo el siguiente resultado en nuestra Hoja1:
hola a ver si alguien responde por aquí así puede insertar checkboxes de forma dinámica, pero pregunto como podría aplicarle código a los checkboxes de forma dinámica
ResponderEliminarHola Joel
Eliminarestos son 'controles de formulario' (no Active X), por lo que no admitirían código...
Pero para crear una macro que 'cree' macros lee aquí
https://excelforo.blogspot.com/2017/03/vba-macro-para-crear-otras-macros-Excel.html
Saludos
Hola, buen día, de antemano muchas gracias por el aporte.
ResponderEliminarEspero puedan ayudarme con la siguiente consulta:
hay alguna manera de crear estos ChekBox a un UserForm(en lugar de montarlos en la Hoja de Excel)?
Gracias
Hola,
Eliminarsi es posible, solo que las propiedades del control son otras...
Puedes insertarlo manualmente o incluso crear un procedimiento 'ex professo' para esto (lee aquí)
Saludos