Excel / VBA - Cómo crear múltiples casillas de verificación

Excel / VBA - Cómo crear múltiples casillas de verificación

En este artículo, aprenderá cómo crear casillas de verificación que se vinculan automáticamente a celdas particulares. VBA no permite la creación de múltiples casillas de verificación a la vez. Puede vincular manualmente las casillas de verificación a celdas específicas (Copiar / Pegar). Para cada copia de su casilla debe seleccionar una celda. ¡Esta es una tarea bastante tediosa!

Empezando

El tipo de control

  • Hay dos tipos de casillas de verificación en Excel: formularios y controles ActiveX. En este artículo, utilizaremos el tipo de formulario.

Evite abarrotar su hoja de Excel con demasiados elementos

  • Excel no siempre maneja bien una página desordenada (visualización), especialmente si pretende usar un libro de trabajo en varias versiones de Excel.

Creando las casillas de verificación

Para cada una de sus casillas de verificación, habrá dos celdas importantes:
  • La celda de posición : la que dibujaremos en nuestra casilla de verificación.
  • La celda vinculada : una en la que devolveremos el resultado de nuestra casilla de verificación.
  • Tenga en cuenta que en este ejemplo, la celda de posición y la celda vinculada son las mismas. Marcar o desmarcar esta casilla devolverá VERDADERO o FALSO en la celda vinculada. Desafortunadamente, Excel no permite configurar múltiples casillas de verificación. Hay dos soluciones posibles para superar esta limitación:

Solución 1

Este simple código VBA cuando se activa (manualmente), generará las casillas de verificación junto con las celdas vinculadas.

El código

  • Desde su libro de trabajo, presione ALT + F11 para acceder al editor de VBA.
  • Haga clic en Insertar> Módulo .
  • Copia y pega el siguiente código:

 Option Explicit Sub Inserer_Cases_a_cocher_Liees () Dim rngCel As Range Dim ChkBx As CheckBox para cada rngCel En la selección con rngCel.MergeArea.Cells If .Resize (1, 1) .Address = rngCel.Address Then 'Pour ne pas en el lugar donde se encuentra. Liée, enlevez l'apostrophe en debut of ligne suivante: '.NumberFormat = ";;;" Establezca ChkBx = ActiveSheet.CheckBoxes.Add (.Left, .Top, .Width, .Height) Con ChkBx 'valeur par défaut: .Value = xlOff' pourrait être True .u False 'cellule liée .LinkedCell = rngCel.Merter. Dirección 'Texte de remplacement' .Characters.Text = "TITI" 'texte' .Text = "Toto" 'ou: .Caption = "Toto"' bordure: With .Border 'Style de ligne' .LineStyle = xlLineStyleNone 'ou xlContinuous 'ou xlDashDot ou xlDashDotDot ou xlDot' couleur '.ColorIndex = 3' 3 = rouge 'épaisseur du trait' .Wight = 4 Fin Con 'accessibles aussi les propriétés .Locked, .Name .Enabled etc ... End With End If Termina con el siguiente rngCel End Sub 

Para utilizar este código:

De cualquier hoja de su libro de trabajo:
  • Seleccione el rango de celdas donde desea insertar las casillas de verificación,
  • Presione Alt + F8 .
  • Seleccione el módulo y haga clic en Ejecutar .

Solucion 2

En este ejemplo, usaremos el evento Worksheet_SelectionChange como desencadenante.

Este evento ejecutará automáticamente el código cada vez que seleccione una celda (dentro de un cierto rango).

El código propuesto recorrerá todas las celdas de un rango seleccionado y, si la celda está en la fuente "Wingdings", insertará una casilla de verificación.

El código

Para insertar este código:
  • Abra la hoja de su elección.
  • Haga clic derecho en la pestaña de la hoja> Ver código .
  • Copia y pega el siguiente código:

 Opción Explicita Privada Hoja de trabajo secundaria_Selección Cambio (ByVal Target As Range) 'Restriction de la plage. Para unir la frontera con el metez un apóstrofe en el debut de ligne suivante Si Intersect (Unión ([A2: A10], [D2: D10]), Target) No es nada, entonces salga de la subplage A2: A10; D2: D10 If Target. Count = 1 O Target.MergeCells Then If Target.Font.Name = "Wingdings" Then With Target 'cellule "liée" .Value = Abs (.Range ("A1"). Value - 1) .NumberFormat = "" "þ ""; General; "" o ""; @ "Application.EnableEvents = False .Range (" A1 "). Offset (, 1) .Seleccione Application.EnableEvents = True End With End End End End End End 

Para utilizar este código:

  • Seleccione el rango de celdas.
  • Aplicar la fuente Wingdings.
  • Haga clic en cualquier lugar de su hoja de trabajo y luego en cada una de las celdas seleccionadas previamente.

Usando el código con un libro / hoja protegido

 ActiveSheet.Protect "admin" 'admin = votre mot de passe' PONGA SU CÓDIGO AQUÍ ActiveSheet.Unprotect "admin" 

Si su hoja está protegida, deberá desproteger el código. Esto se puede lograr utilizando el siguiente código:

Artículo Anterior Artículo Siguiente

Los Mejores Consejos