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

Checkbox dans des cases

24 réponses
Avatar
Claude Schneegans
Bonjour,

Je cherche à faire un tableau avec disons deux colonnes.
Dans la première, j'ai des prix, dans la seconde j'ai 1 ou 0 (sélection)
En dessous, j'affiche le total des articles pour lesquels la sélection = 1.

Pour que ça soit plus convivial, je voudrais remplacer les 0 ou 1 par un
checkbox, à la manière Access.
Est-ce possible, et comment je fais pour trouver la valeur associée au
checkbox pour faire mon total ?

Merci.

10 réponses

1 2 3
Avatar
LSteph
Bonjour,

Tu vas mettre autant de checkbox que de cellules... soit * ..!
Supposons valeurs en A2:A6
Pour chaque checkbox placée à coté mettre la propriété Linckedcell
b2 pour la première ...b6 pour la dernière
(ou voir code ajtchb plus bas)

la formule sera ainsi:

=SOMMEPROD((A2:A6)*(B2:B6=VRAI))


--
lSteph

'*

Sub ajtchb()
Dim c As Range
For Each c In [a2:a6]
With c.Offset(0, 1)
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=c, _
DisplayAsIcon:úlse, Left:=.Left, Top:=.Top, Width:=.Width, _
Height:.5).Select
Selection.LinkedCell = .Address
End With

Next
[a1].Activate
End Sub


Claude Schneegans a écrit :
Bonjour,

Je cherche à faire un tableau avec disons deux colonnes.
Dans la première, j'ai des prix, dans la seconde j'ai 1 ou 0 (sélection)
En dessous, j'affiche le total des articles pour lesquels la sélection = 1.

Pour que ça soit plus convivial, je voudrais remplacer les 0 ou 1 par un
checkbox, à la manière Access.
Est-ce possible, et comment je fais pour trouver la valeur associée au
checkbox pour faire mon total ?

Merci.


Avatar
garnote
Salut Claude,

Pour le plaisir, une autre façon de faire :
http://www.cijoint.fr/cjlink.php?file=cj200901/cijqAWmMyg.xls

Serge


"Claude Schneegans" a écrit dans le message de news:
Bonjour,

Je cherche à faire un tableau avec disons deux colonnes.
Dans la première, j'ai des prix, dans la seconde j'ai 1 ou 0 (sélection)
En dessous, j'affiche le total des articles pour lesquels la sélection = 1.

Pour que ça soit plus convivial, je voudrais remplacer les 0 ou 1 par un checkbox, à la manière Access.
Est-ce possible, et comment je fais pour trouver la valeur associée au checkbox pour faire mon total ?

Merci.


Avatar
garnote
Avant de subir les foudres de Monseigneur,
sachez qu'il faut remplacer
3) Je l'ai aligné ... par 3) Je l'ai alignée ...

http://www.cijoint.fr/cjlink.php?file=cj200901/cijqAWmMyg.xls

Serge ;-)
Avatar
gmlsteph
;-))

Avant de subir les foudres de Monseigneur,



Oui Serge et d'autres foudres encore pour ceux qui mettent des liens
cjoint sans donner le détail de la réponse dans le fil
..code, et/ou formules resteront ainsi, lorsque le lien sera mort.

Pour reprendre je cite '''
=SOMMEPROD(A2:A1001;B2:B1001)
et ce que tu as mis dans ton exemple:
''''''''
1) J'ai formaté A2 en $
2) J'ai inséré une zone de texte de la Barre d'outiils Formulaire en
B2
3) Je l'ai aligné sur la grille pour qu'elle occupe toute la cellule
4) J'ai centré son texte horizontalement et verticalement
5) J'ai choisi la fonte Webdings et la taille 20
6) J'ai associé la macro «Cocher» à cette zone de texte
7) J'ai sélectionné A2:B2 et tapé Ctrl+C
8) J'ai sélectionné A3:A9 et tapé Ctrl+V
Ne reste plus qu'à entrer des prix et à cocher.
Si tu veux plus de prix à cocher, sélectionne A9:B9, tape Ctrl+C,
sélectionne A10:Ax et tape Ctrl+V.

Sub Cocher()
With ActiveSheet.Shapes(Application.Caller).TextFrame
If .Characters.Text = "" Then
.Characters.Text = "a"
.Parent.TopLeftCell = 1
Else
.Characters.Text = ""
.Parent.TopLeftCell = 0
End If
End With
End Sub
'Garnote
'''

'@+
'lSteph
Avatar
garnote
Tu as bien raison de me morigéner ;-)
Ça m'énerve aussi un tipeu quand on m'envoie
sur un joint sans explications.

Serge
Qui a dit ça :
«On peut obtenir beaucoup plus avec un mot gentil et un revolver,
qu'avec un mot gentil tout seul».



a écrit dans le message de news:
;-))

Avant de subir les foudres de Monseigneur,



Oui Serge et d'autres foudres encore pour ceux qui mettent des liens
cjoint sans donner le détail de la réponse dans le fil
..code, et/ou formules resteront ainsi, lorsque le lien sera mort.

Pour reprendre je cite '''
=SOMMEPROD(A2:A1001;B2:B1001)
et ce que tu as mis dans ton exemple:
''''''''
1) J'ai formaté A2 en $
2) J'ai inséré une zone de texte de la Barre d'outiils Formulaire en
B2
3) Je l'ai aligné sur la grille pour qu'elle occupe toute la cellule
4) J'ai centré son texte horizontalement et verticalement
5) J'ai choisi la fonte Webdings et la taille 20
6) J'ai associé la macro «Cocher» à cette zone de texte
7) J'ai sélectionné A2:B2 et tapé Ctrl+C
8) J'ai sélectionné A3:A9 et tapé Ctrl+V
Ne reste plus qu'à entrer des prix et à cocher.
Si tu veux plus de prix à cocher, sélectionne A9:B9, tape Ctrl+C,
sélectionne A10:Ax et tape Ctrl+V.

Sub Cocher()
With ActiveSheet.Shapes(Application.Caller).TextFrame
If .Characters.Text = "" Then
.Characters.Text = "a"
.Parent.TopLeftCell = 1
Else
.Characters.Text = ""
.Parent.TopLeftCell = 0
End If
End With
End Sub
'Garnote
'''

'@+
'lSteph
Avatar
Claude Schneegans
Merci pour vos réponses, je pensais qu'il y avait plus simple, mais
enfin bon.
Avatar
Claude Schneegans
>>Pour chaque checkbox placée à coté





C'est ça le problème : pourquoi « placée à côté » ? Il n'y a pas moyen
de mettre une checkbox DANS une cellule, tout simplement ?
Ça devrait en fait faire partie des façons possibles de formater une
cellule :
= 0 : checkbox non cochée
<> 0 : checkbox cochée
(et vice versa)
Avatar
LSteph
ton but n'était-il pas de mettre une formule à la place des oui et non

Voilà deux propositions qui font cela avec ou sans checkbox

Alors...
> Ça devrait
...
c'est un peu à côté

on essaye juste de t'aider pour ta soluce avec checkbokx
particulièrement lourde amha.

attribuer une valeur est précisément différent de l'utilisation d'un format.


On pourrait mettre un proc évennementielle en plus pour chaque
changement , et si tu veux qu'on fasse tout par macro c'est possible
mais je trouve cela grave lourd qd on peut tout mettre en une simple
formule qui ne requiert guère plus que des 1 ou 0 *

@+

--
lSteph




Claude Schneegans a écrit :
>>Pour chaque checkbox placée à coté

C'est ça le problème : pourquoi « placée à côté » ? Il n'y a pas moyen
de mettre une checkbox DANS une cellule, tout simplement ?
Ça devrait en fait faire partie des façons possibles de formater une
cellule :
= 0 : checkbox non cochée
<> 0 : checkbox cochée
(et vice versa)


Avatar
LSteph
..pourtant c'est on ne peut plus simplissime!

>enfin , bon
...




Claude Schneegans a écrit :
Merci pour vos réponses, je pensais qu'il y avait plus simple, mais
enfin bon.


Avatar
Claude Schneegans
>> on essaye juste de t'aider pour ta soluce avec checkbokx




particulièrement lourde amha.

Ben oui, bien sûr, et je vous remercie, mais ça n'empêche pas de faire
des commentaires sans viser personne.

>>attribuer une valeur est précisément différent de l'utilisation d'un
format.

Pas du tout. Un checkbox, c'est une représentation, donc un format, pour
une valeur logique qui peut être 0 ou 1.
D'ailleurs, c'est exactement comme ça qu'est traité un champ Yes-no en
Access. On peut changer le format
par du texte, ou un checkbox. C'est bien plus pratique que d'entrer des
valeurs 0 ou 1.

Je disais donc juste que si Microstuff avait procédé de la même façon
pour Excel que pour Access, ça serait aussi bien.
1 2 3