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 ?
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.
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 ?
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.
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.
Salut Claude,
Pour le plaisir, une autre façon de faire :
http://www.cijoint.fr/cjlink.php?file=cj200901/cijqAWmMyg.xls
Serge
"Claude Schneegans" <schneegans@internetique.com> a écrit dans le message de news: uTNUqrOfJHA.5888@TK2MSFTNGP03.phx.gbl...
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 ?
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.
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 ...
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
;-))
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
'''
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
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
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».
<gmlsteph@gmail.com> a écrit dans le message de news: 78ac07a8-f76c-4a75-be81-059742353cfc@40g2000prx.googlegroups.com...
;-))
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
'''
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
Claude Schneegans
Merci pour vos réponses, je pensais qu'il y avait plus simple, mais enfin bon.
Merci pour vos réponses, je pensais qu'il y avait plus simple, mais
enfin bon.
Merci pour vos réponses, je pensais qu'il y avait plus simple, mais enfin bon.
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)
>>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)
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)
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)
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)
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)
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.
..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.
Merci pour vos réponses, je pensais qu'il y avait plus simple, mais enfin bon.
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.
>> 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.
>> 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.