Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment lier un checkbox avec une cellule?

4 réponses
Avatar
Jean-Luc GARNIER
Bonjour, je souhaite utiliser des checkboxes pour matérialiser le statut de
certains paramètres dans un tableau. Celui-ci contient une ligne par tâche,
et c'est le statut de ces tâches que je gère avec une checkbox.

Ce que je veux faire: pourvoir lier la checkbox à une cellule, non pas pour
que le mot FALSE/TRUE apparaisse dans la cellule, mais pour pouvoir
copier/coller la cellule AVEC la checkbox. Par la même occasion, si le
contrôle voulait bien se dimensionner automatiquement avec la taille de la
cellule, cela serait bien pratique...

Evidemment se pose le problème du nom de la checkbox (Checkbox1 à N): comme
je ne saurai jamais combien l'utilisateur a créé de lignes, je ne pourrai
connaitre l'état de la checkbox qu'en testant la valeur de la cellule
associée.

Merci d'avance pour vos lumières !

--
Jean-Luc, Auriol, FRANCE

4 réponses

Avatar
Youky
Salut,
1 seul checkbox que l'on positionne sur la ligne de la selection
Sur le click on peut lui faire faire ce que l'on veux, dans cet exemple
on écrit en col K "aaaa"

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Range("K" & ActiveCell.Row) = "aaaa"
CheckBox1.Value = False
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CheckBox1.Top = Target.Top
End Sub

J'ai pas compris ton copié-coller
Youky
Avatar
Jean-Luc GARNIER
Merci Youki !

Ce que je cherche à faire, c'est considérer que la checkbox est contenue par
la cellule, comme un simple texte. Ainsi, lorsqu'on fait copier-coller de la
cellule dans une autre, la checkbox est dupliquée, Excel se débrouillant pour
en changer le nom à la volée...

Le but: j'ai un tableau assez complexe dans lequel l'utilisateur peut
ajouter des lignes (gestion de projets). Pour ceci, il copie une ligne
complète dans un onglet "template" qui contient le modèle de la ligne.
Evidemment, cette ligne-modèle va contenir une ou plusieurs checkboxes, donc
je veux que les checkboxes doient copiées avec le reste de la ligne...

Merci d'avance pour toute aide,

--
Jean-Luc, Auriol, FRANCE


"Youky" wrote:

Salut,
1 seul checkbox que l'on positionne sur la ligne de la selection
Sur le click on peut lui faire faire ce que l'on veux, dans cet exemple
on écrit en col K "aaaa"

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Range("K" & ActiveCell.Row) = "aaaa"
CheckBox1.Value = False
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CheckBox1.Top = Target.Top
End Sub

J'ai pas compris ton copié-coller
Youky





Avatar
Youky
Bonsoir Jean-Luc,
J'ai compris ce que tu souhaites, mon avis, c'est pas la bonne manière de
faire mais j'ai fais selon ta demande...
Ci dessous le code mis sous un bouton dans la Feuille ou la ligne doit être
copiée (template)
Les données seront copiées en Feuil1... c'est pas le nom de l'onglet mais le
CodeName qui est plus sur en cas de renommage.
A changer en fonction
Chose TRES IMPORTANTE, il faut que les CheckBox en "template" aient une
postion .Top comme la ligne qu'ils occuppent
Donc avant de lancer la macro verifie ce qui suit pour toutes les lignes ont
sont des CheckBox en template ou Modele
Dans l'éditeur VBA ouvrir la fenetre Execution
Tape ?Sheets("template").[A2].top et ENTER il va te donner la
position du .top de A2
Tu devras mettre le même chiffre récolté à tous les checkbox.top(en
propriété) de la ligne 2 et ensuite idem pour [A3] et suivant...
Ceci est vital car j'utilise le .top de la cellule selectionnée pour copier
que les checkbox qui ont le même .top
Ceci à faire une seule fois (penser à enregistrer)
Il va sans dire que chaque fois que l'on rajoute des modeles il est
IMPERATIF que les Checkbox soient placés avec un Top
idem à la ligne.top ou cellule .Top
Je reste dispo
Youky


Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
h = Selection.Top
lig = Selection.Row
For Each c In ActiveSheet.Shapes
If c.Top = h Then
x = c.Left
c.Copy
Feuil1.Select
n = Feuil1.[A65000].End(3).Row + 1
Feuil1.Range("D" & n).Select
ActiveSheet.Paste
Selection.Left = x
End If
Next
Feuil1.Range("A" & n & ":AA" & n).Value = Feuil2.Range("A" & lig & ":AA" &
lig).Value
Feuil1.Range("A" & n).Select
Application.ScreenUpdating = True
End Sub

"Jean-Luc GARNIER" <jean-luc.garnier(at)gemalto.com> a écrit dans le message
de news:
Merci Youki !

Ce que je cherche à faire, c'est considérer que la checkbox est contenue
par
la cellule, comme un simple texte. Ainsi, lorsqu'on fait copier-coller de
la
cellule dans une autre, la checkbox est dupliquée, Excel se débrouillant
pour
en changer le nom à la volée...

Le but: j'ai un tableau assez complexe dans lequel l'utilisateur peut
ajouter des lignes (gestion de projets). Pour ceci, il copie une ligne
complète dans un onglet "template" qui contient le modèle de la ligne.
Evidemment, cette ligne-modèle va contenir une ou plusieurs checkboxes,
donc
je veux que les checkboxes doient copiées avec le reste de la ligne...

Merci d'avance pour toute aide,

--
Jean-Luc, Auriol, FRANCE


"Youky" wrote:

Salut,
1 seul checkbox que l'on positionne sur la ligne de la selection
Sur le click on peut lui faire faire ce que l'on veux, dans cet exemple
on écrit en col K "aaaa"

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Range("K" & ActiveCell.Row) = "aaaa"
CheckBox1.Value = False
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CheckBox1.Top = Target.Top
End Sub

J'ai pas compris ton copié-coller
Youky







Avatar
Youky
Voici le fichier que j'ai créé pour faire la macro
http://cjoint.com/?ctvDBpovB5
Mets le curseur sur la ligne que tu veux copier et click sur le bouton
Quel que soit le nombre de checkbox sur la ligne ceux-ci seront copiés ainsi
que la ligne modele de A à CC
Il est évident qu'un simple copié-collé par le menu ne fait pas affaire et
tu dois en passer par la macro.
J'attends le moment ou tu va me dire si j'efface une ligne comment effacer
aussi les checkbox
Eh ben
......
if faut utiliser le .top de la ligne et supprimer tous les checkbox qui
auront le mm .top
Youky