Microsoft 365 Résolu : Format tableau-case à cocher

Angus HEYERDAHL

XLDnaute Junior
Bonjour à tous,

J'aurai besoin de lier une case à cocher dans une cellule d'un tableau (mettre sous forme de tableau), et quand on rajoute une ligne que la case à cocher se mette automatiquement.
Est-ce possible sans VBA, si oui, auriez-vous une idée de la marche à suivre.

En vous remerciant par avance
 

Pièces jointes

  • Exemple.xlsx
    13.3 KB · Affichages: 12
Dernière édition:

fanch55

XLDnaute Barbatruc
Bonjour,
La seule façon de rajouter une case à cocher implique l'utilisation du Vba.
Mettre beaucoup d'activex dans un tableau peut être source de problème et d'embonpoint du classeur.
Il vaut mieux n'avoir qu'une seule case à cocher qu'on déplace selon besoin.
 

chris

XLDnaute Barbatruc
Bonjour

Non pas possible sans VBA et pas intéressant car cela surcharge inutilement le fichier

On utilise plutôt le cochage/décochage de cellule par double clic qui peut automatiquement prendre en compte toute ligne ajoutée à un tableau structuré

A placer dans le module de la feuille
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    With Range("BDD").ListObject
        If .DataBodyRange Is Nothing Then Exit Sub
        If Intersect(Target, .ListColumns("Demi-journée").DataBodyRange) Is Nothing Then Exit Sub
        Cancel = True
        If Target = "" Then Target.Value = "ü" Else Target.Value = ""
    End With
End Sub

Mettre la colonne Demi-journée en police Wingdings et couleur noire

EDIT : pas rafraichi et pas vu les échanges. Bonjour fanch55
 
Dernière édition:

fanch55

XLDnaute Barbatruc
Si vous tenez à des checkbox :
Code à placer dans le module de la feuille
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next: Me.Shapes("ckb").Delete
    On Error GoTo 0

    If Target.Count = 1 Then
        If Not Intersect(Target, [BDD[Demi-journée]]) Is Nothing Then
            With Me.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, DisplayAsIcon:=False, _
                 Left:=Target.Left + 2, Top:=Target.Top + 2, Width:=10, Height:=Target.Height - 4)
                .Name = "ckb"
                .LinkedCell = Target.Address
            End With
        End If
    End If
End Sub
 

Discussions similaires

Réponses
5
Affichages
166

Statistiques des forums

Discussions
312 176
Messages
2 085 967
Membres
103 070
dernier inscrit
jujulop