Multiples cases à cocher allouées aux cellules

Bonjour,

J’ai un document de plus de 700 lignes et je souhaite y ajouter, sur plusieurs colonnes, des cases à cocher. Par la suite je souhaite pouvoir récupérer la valeur de ces cases à cocher (Idéalement par le biais de la cellule dans laquelle elle sera positionnée).

Actuellement je ne trouve que des solutions pour faire manuellement cette « allocation » d’une case à cocher à une cellule, mais rien pour l’étendre telle une formule.

Avez-vous des solutions permettant de faire cela?

Hello,

Essaie ça : tu sélectionnes la plage voulue et tu fais exécuter la macro

Option Explicit

Sub Inserer_Cases_a_cocher_Liees()

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

Dim rngCel As Range
Dim ChkBx As CheckBox

For Each rngCel In Selection
  With rngCel.MergeArea.Cells
    If .Resize(1, 1).Address = rngCel.Address Then
    'Pour ne pas afficher la valeur de la cellule liée, enlevez l'apostrophe en début de ligne suivante :
      .NumberFormat = ";;;"
      Set ChkBx = ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height)

      With ChkBx
        'valeur par défaut :
        .Value = xlOff 'pourrait être True ou False

        'cellule liée
        .LinkedCell = rngCel.MergeArea.Cells.Address

        'Texte de remplacement
        .Characters.Text = ""
        .Text = ""

      End With
    End If
  End With
Next rngCel

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

Call CenterCheckbox
End Sub

@+

Bonjour, merci de ton retour rapide !

J'ai droit à cette erreur:

image

Hello,

Autant pour moi,

essaie ça mais sur 700 lignes tu verras ça va ramer

Option Explicit

Sub Inserer_Cases_a_cocher_Liees()

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

Dim rngCel As Range
Dim ChkBx As CheckBox

For Each rngCel In Selection
  With rngCel.MergeArea.Cells
    If .Resize(1, 1).Address = rngCel.Address Then
    'Pour ne pas afficher la valeur de la cellule liée, enlevez l'apostrophe en début de ligne suivante :
      .NumberFormat = ";;;"
      Set ChkBx = ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height)

      With ChkBx
        'valeur par défaut :
        .Value = xlOff 'pourrait être True ou False

        'cellule liée
        .LinkedCell = rngCel.MergeArea.Cells.Address

        'Texte de remplacement
        .Characters.Text = ""
        .Text = ""

      End With
    End If
  End With
Next rngCel

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

End Sub

@+

Merci ! Ca fonctionne pour la création des cases à cocher mais quand j'essaie de récupérer la valeur de la cellule dans laquelle est située la case cela ne m'indique rien.

Ce serait pour utiliser ces information dans des formules par la suite. Si la case est cochée alors ....

Hello,

Du coup utilise ça :)

Option Explicit

Sub Inserer_Cases_a_cocher_Liees()

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

Dim rngCel As Range
Dim ChkBx As CheckBox

For Each rngCel In Selection
  With rngCel.MergeArea.Cells
    If .Resize(1, 1).Address = rngCel.Address Then
    'Pour ne pas afficher la valeur de la cellule liée, enlevez l'apostrophe en début de ligne suivante :
      '.NumberFormat = ";;;"
      Set ChkBx = ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height)

      With ChkBx
        'valeur par défaut :
        .Value = xlOff 'pourrait être True ou False

        'cellule liée
        .LinkedCell = rngCel.MergeArea.Cells.Address

        'Texte de remplacement
        .Characters.Text = ""
        .Text = ""

      End With
    End If
  End With
Next rngCel

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

End Sub

Il fallait rajouter une apostrophe devant l'instruction NumberFormat

@+

Juste un petit problème de positionnement décalé d'une ligne mais c'est parfait ! Merci beaucoup

Hey,

Je n'ai pas de décalage de mon côté... Bizarre.

En tout cas si t'as besoin n'hésites pas sinon passe le sujet en résolu :)

@+

Bonjour à tous

C'est une aberration de positionner des cases à cocher sur toutes les lignes qui plus est de n colonnes

Le positionnement n'est qu'un détail mais le tri, le filtre, l'ajout, la suppression de lignes mettent un beau b..rdel sans parler du poids du fichier...

Un cochage /decochage de la cellule elle-même par double clic est plus efficace.

On peut gérer le ou si des colonnes sont des alternatives

Qu'appelles-tu par un cochage/décochage des cellules elles-mêmes?

RE

Un double clic met une coche (caractère ü en Wingdings), un double clic l'enlève.

Soit chaque colonne est indépendante, soit on peut définir un groupe de colonne par exemple M, Mme ou Mlle : si on coche l'un décoche les autres

Quelques lignes de codes suffisent...

Tu es libre de proposer une autre solution à mon problème alors au lieu de descendre les autres solutions ^^

RE

Le rôle du forums est d'orienter vers les bonnes solutions et d'éviter les chausses trappes aux demandeurs...

Je répète que 700 coches X n colonnes te poseras des problèmes certains...

Mais tu fais comme tu veux bien évidemment

As-tu une solution à me donner pour l'implémentation de ce double-click sur des cellules stp?

Et avec cela on peut récupérer la "valeur" d'une cellule correspondante à une case cochée pour une formule par exemple?

Je veux dire par là est-ce que la cellule prendra la valeur 'Vrai' ou 1 par exemple si elle est cochée?

Bonjour

La cellule contient ü ou rien donc il est très facile de se référer au contenu dans des formules, de compter les coches ou autre...

Là aussi c'est plus simple que de différencier 1 ou 0 et évite des cellules liées en plus des coches

Hello 78Chris, MrMunegu,

Merci 78Chris pour cette idée de double clic via une macro évènement qui fait apparaître la coche, j'ai un fichier qui va être moins lourd du coup et vachement plus simple à traiter

Merci à toi

@+

Rechercher des sujets similaires à "multiples cases cocher allouees"