Calcul d'un résultat en fonction des cases cochées
21 réponses
newoceane2000
Bonjour =E0 tous,
Voila je voudrais pouvoir cr=E9er dans l'id=E9al le fichier suivant :
J'ai sur une feuille Excel avec plusieurs param=E8tres (on va dire 2
pour simplifier) et pour chaque param=E8tre il faut cocher une case.
Par exemple pour le param=E8tre 1 : type de voiture
Je peux cocher soit la case A, la B ou C
param=E8tre 2 : dur=E9e de la location
Je peux cocher la case C, D, E ou F
Il faudrait au final qu'en cochant juste la case pour chaque param=E8tre
on est le r=E9sultat d'un calcul qui s'affiche
Dans notre exemple A=3D1, B=3D1, C=3D2, D=3D3 , E=3D1, F=3D2
Si on a A et E de cocher, le resultat est le produits des valeurs des
cases coch=E9es =3D 1x1=3D1
De m=EAme si C et F sont coch=E9es on a 4 qui s'affiche (2x2).
Ma premi=E8re question est de savoir comment concevoir un tel fichier?
Faut-il cr=E9er un userform ou il y a t-il un moyen plus simple d'y
arriver?
Je voudrais =E9galement pouvoir enregistrer la page comme elle est (avec
les cases coch=E9s visibles) pour garder l'historique et pouvoir
imprimer la feuille
Merci beaucoup Isabelle, en revérifiant je m'étais trompée d'un chiffre dans une colonne.
J'ai toutefois rajouter une petite fonction :
En B65 je voudrais qu'en fonction du résultat du cacul de ta macro que : - pour 0 il soit inscrit "échec" - entre 1 et 15 il soit inscrit "ok" - supérieur à 15 il soit inscrit "vérifier"
Merci pour votre aide
On 3 nov, 21:51, isabelle wrote:
bonjour,
à première vue tout me semble correct, si tu peut, dépose ton fichier ici : http://www.cjoint.com et revient donner ici le lien de téléchargement que le site va gén érer. je pourrai alors le télécharger et regarder de plus près.
ps/ je n'ai besoin que la feuille contenant les "CheckBox"
isabelle
a écrit :
> Bonsoir,
> Je reviens vers vous car j'essai d'adapter mon fichier à vos répons es > mais j'ai un peu de mal.
> Vu que mon fichier comporte 10 paramètres avec pour chaque paramètr e > plusieurs cases àcocherpossibles, la solution d'Isabelle me semble > plus simple. J'ai essayé d'adapter son code mais le résultat du cal cul > est faux :
> Sub Calcul() > Dim Sh As Shape > Cells(1, 40) = 0 > On Error Resume Next > With Feuil1 > For Each Sh In .Shapes > If TypeName(Sh.OLEFormat.Object.Object) = "CheckBo x" Then > i = i + 1 > If Sh.OLEFormat.Object.Object.Value = "Vra i" Then > SelectCasei > Case1 To 5: x = x + Cells(1, i) > Case6 To 7: y = y + Cells(1, i) > Case8 To 17: a = a + Cells(1, i) > Case18 To 19: b = b + Cells(1, i) > Case20 To 21: c = c + Cells(1, i) > Case22 To 24: d = d + Cells(1, i) > Case25 To 29: e = e + Cells(1, i) > Case30 To 31: f = f + Cells(1, i) > Case32 To 35: g = g + Cells(1, i) > Case36 To 39: h = h + Cells(1, i) > End Select > End If > End If > Next > End With > Cells(1, 40) = x * y * a * b * c * d * e * f * g * h > End Sub
> En fait j'ai en tout 39caseàcocher: > pour le paramètre 1, je peuxcocherlacase1 ou 2 ou 3 ....ou 5 > pour le paramètre 2, je peuxcocherlacase6 ou 7 > ......
> Qu'est ce qui ne va pas dans ce code?
> Vous en remerciant par avance
> On 30 oct, 19:21, "JPMonnier" wrote: >> Bonsoir, >> Si tu as des soucis, n'hésite pas ou envoie moi ton fichier sur cjoi nt >> -- >> Cordialement >> >> a écrit dans le message denews:5120fe06-25b >> On 28 oct, 21:42, "JPMonnier" wrote:
>>> Bonsoir, dans les cellules A1,B1,C1,D1,E1,F1 tu entres les valeurs qu e tu >>> veux >>> -- >>> Cordialement >>> >>> a écrit dans le message >>> denews: com... >>> Bonsoir, >>> Effectivement cette macro cacule bien le produit cependant y a t-il u n >>> moyen d'affecter aux cases àcocherdes valeurs bien spécifique et non >>> pas 1,2,3...6? >>> En tout cas merci de vous être penché sur mon problème. >>> On 27 oct, 21:22, "JPMonnier" wrote: >>>> Bonsoir, >>>> la première réponse à ce post le 25/10 à 17h12 calcule bien le produit ! >>>> Mais elle est un peu plus lourde que celle d'Isabelle, c'est vrai >>>> -- >>>> Cordialement >>>> >>>> a écrit dans le message >>>> denews: .com... >>>> Merci pour tous vos réponses c'est super, je vais essayer de l'ada pter >>>> à mon fichier. >>>> La solution qui me paraissait la plus adaptée serai celle de JP re pris >>>> par Isabelle sauf que la macro ne fait pas les bons calculs (les cas es >>>> valent 1, 2, 3, 4, 5, 6 et non les valeurs que j'avais indiqué et elle >>>> calcul la somme et non le produit des cases cochées). >>>> Merci pour votre aide- Masquer le texte des messages précédents - >>> - Afficher le texte des messages précédents - >> C'est super, j'avais pas compris que je pouvais changer les valeurs >> merci beaucoup c'est exactement ce qu'il me faut.
>> J'espère pouvoir l'adapter à mon fichier- Masquer le texte des mes sages précédents -
>> - Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -
Merci beaucoup Isabelle, en revérifiant je m'étais trompée d'un
chiffre dans une colonne.
J'ai toutefois rajouter une petite fonction :
En B65 je voudrais qu'en fonction du résultat du cacul de ta macro
que :
- pour 0 il soit inscrit "échec"
- entre 1 et 15 il soit inscrit "ok"
- supérieur à 15 il soit inscrit "vérifier"
Merci pour votre aide
On 3 nov, 21:51, isabelle <i@v> wrote:
bonjour,
à première vue tout me semble correct,
si tu peut, dépose ton fichier ici : http://www.cjoint.com
et revient donner ici le lien de téléchargement que le site va gén érer.
je pourrai alors le télécharger et regarder de plus près.
ps/ je n'ai besoin que la feuille contenant les "CheckBox"
isabelle
newoceane2...@yahoo.fr a écrit :
> Bonsoir,
> Je reviens vers vous car j'essai d'adapter mon fichier à vos répons es
> mais j'ai un peu de mal.
> Vu que mon fichier comporte 10 paramètres avec pour chaque paramètr e
> plusieurs cases àcocherpossibles, la solution d'Isabelle me semble
> plus simple. J'ai essayé d'adapter son code mais le résultat du cal cul
> est faux :
> Sub Calcul()
> Dim Sh As Shape
> Cells(1, 40) = 0
> On Error Resume Next
> With Feuil1
> For Each Sh In .Shapes
> If TypeName(Sh.OLEFormat.Object.Object) = "CheckBo x" Then
> i = i + 1
> If Sh.OLEFormat.Object.Object.Value = "Vra i" Then
> SelectCasei
> Case1 To 5: x = x + Cells(1, i)
> Case6 To 7: y = y + Cells(1, i)
> Case8 To 17: a = a + Cells(1, i)
> Case18 To 19: b = b + Cells(1, i)
> Case20 To 21: c = c + Cells(1, i)
> Case22 To 24: d = d + Cells(1, i)
> Case25 To 29: e = e + Cells(1, i)
> Case30 To 31: f = f + Cells(1, i)
> Case32 To 35: g = g + Cells(1, i)
> Case36 To 39: h = h + Cells(1, i)
> End Select
> End If
> End If
> Next
> End With
> Cells(1, 40) = x * y * a * b * c * d * e * f * g * h
> End Sub
> En fait j'ai en tout 39caseàcocher:
> pour le paramètre 1, je peuxcocherlacase1 ou 2 ou 3 ....ou 5
> pour le paramètre 2, je peuxcocherlacase6 ou 7
> ......
> Qu'est ce qui ne va pas dans ce code?
> Vous en remerciant par avance
> On 30 oct, 19:21, "JPMonnier" <jpmonnier-no-s...@neuf.fr> wrote:
>> Bonsoir,
>> Si tu as des soucis, n'hésite pas ou envoie moi ton fichier sur cjoi nt
>> --
>> Cordialement
>> jpmonnier-nos...@neuf.fr
>> <newoceane2...@yahoo.fr> a écrit dans le message denews:5120fe06-25b f-4b7f-9d7c-e83e2090a2ab@j22g2000hsf.googlegroups.com...
>> On 28 oct, 21:42, "JPMonnier" <jpmonnier-no-s...@neuf.fr> wrote:
>>> Bonsoir, dans les cellules A1,B1,C1,D1,E1,F1 tu entres les valeurs qu e tu
>>> veux
>>> --
>>> Cordialement
>>> jpmonnier-nos...@neuf.fr
>>> <newoceane2...@yahoo.fr> a écrit dans le message
>>> denews:840ce9de-7d32-4ac0-bc0b-b5d68824784c@w24g2000prd.googlegroups. com...
>>> Bonsoir,
>>> Effectivement cette macro cacule bien le produit cependant y a t-il u n
>>> moyen d'affecter aux cases àcocherdes valeurs bien spécifique et non
>>> pas 1,2,3...6?
>>> En tout cas merci de vous être penché sur mon problème.
>>> On 27 oct, 21:22, "JPMonnier" <jpmonnier-no-s...@neuf.fr> wrote:
>>>> Bonsoir,
>>>> la première réponse à ce post le 25/10 à 17h12 calcule bien le produit !
>>>> Mais elle est un peu plus lourde que celle d'Isabelle, c'est vrai
>>>> --
>>>> Cordialement
>>>> jpmonnier-nos...@neuf.fr
>>>> <newoceane2...@yahoo.fr> a écrit dans le message
>>>> denews:ff5f8258-e8d3-4187-9c7f-e9d1cf13be54@v28g2000hsv.googlegroups .com...
>>>> Merci pour tous vos réponses c'est super, je vais essayer de l'ada pter
>>>> à mon fichier.
>>>> La solution qui me paraissait la plus adaptée serai celle de JP re pris
>>>> par Isabelle sauf que la macro ne fait pas les bons calculs (les cas es
>>>> valent 1, 2, 3, 4, 5, 6 et non les valeurs que j'avais indiqué et elle
>>>> calcul la somme et non le produit des cases cochées).
>>>> Merci pour votre aide- Masquer le texte des messages précédents -
>>> - Afficher le texte des messages précédents -
>> C'est super, j'avais pas compris que je pouvais changer les valeurs
>> merci beaucoup c'est exactement ce qu'il me faut.
>> J'espère pouvoir l'adapter à mon fichier- Masquer le texte des mes sages précédents -
>> - Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
Merci beaucoup Isabelle, en revérifiant je m'étais trompée d'un chiffre dans une colonne.
J'ai toutefois rajouter une petite fonction :
En B65 je voudrais qu'en fonction du résultat du cacul de ta macro que : - pour 0 il soit inscrit "échec" - entre 1 et 15 il soit inscrit "ok" - supérieur à 15 il soit inscrit "vérifier"
Merci pour votre aide
On 3 nov, 21:51, isabelle wrote:
bonjour,
à première vue tout me semble correct, si tu peut, dépose ton fichier ici : http://www.cjoint.com et revient donner ici le lien de téléchargement que le site va gén érer. je pourrai alors le télécharger et regarder de plus près.
ps/ je n'ai besoin que la feuille contenant les "CheckBox"
isabelle
a écrit :
> Bonsoir,
> Je reviens vers vous car j'essai d'adapter mon fichier à vos répons es > mais j'ai un peu de mal.
> Vu que mon fichier comporte 10 paramètres avec pour chaque paramètr e > plusieurs cases àcocherpossibles, la solution d'Isabelle me semble > plus simple. J'ai essayé d'adapter son code mais le résultat du cal cul > est faux :
> Sub Calcul() > Dim Sh As Shape > Cells(1, 40) = 0 > On Error Resume Next > With Feuil1 > For Each Sh In .Shapes > If TypeName(Sh.OLEFormat.Object.Object) = "CheckBo x" Then > i = i + 1 > If Sh.OLEFormat.Object.Object.Value = "Vra i" Then > SelectCasei > Case1 To 5: x = x + Cells(1, i) > Case6 To 7: y = y + Cells(1, i) > Case8 To 17: a = a + Cells(1, i) > Case18 To 19: b = b + Cells(1, i) > Case20 To 21: c = c + Cells(1, i) > Case22 To 24: d = d + Cells(1, i) > Case25 To 29: e = e + Cells(1, i) > Case30 To 31: f = f + Cells(1, i) > Case32 To 35: g = g + Cells(1, i) > Case36 To 39: h = h + Cells(1, i) > End Select > End If > End If > Next > End With > Cells(1, 40) = x * y * a * b * c * d * e * f * g * h > End Sub
> En fait j'ai en tout 39caseàcocher: > pour le paramètre 1, je peuxcocherlacase1 ou 2 ou 3 ....ou 5 > pour le paramètre 2, je peuxcocherlacase6 ou 7 > ......
> Qu'est ce qui ne va pas dans ce code?
> Vous en remerciant par avance
> On 30 oct, 19:21, "JPMonnier" wrote: >> Bonsoir, >> Si tu as des soucis, n'hésite pas ou envoie moi ton fichier sur cjoi nt >> -- >> Cordialement >> >> a écrit dans le message denews:5120fe06-25b >> On 28 oct, 21:42, "JPMonnier" wrote:
>>> Bonsoir, dans les cellules A1,B1,C1,D1,E1,F1 tu entres les valeurs qu e tu >>> veux >>> -- >>> Cordialement >>> >>> a écrit dans le message >>> denews: com... >>> Bonsoir, >>> Effectivement cette macro cacule bien le produit cependant y a t-il u n >>> moyen d'affecter aux cases àcocherdes valeurs bien spécifique et non >>> pas 1,2,3...6? >>> En tout cas merci de vous être penché sur mon problème. >>> On 27 oct, 21:22, "JPMonnier" wrote: >>>> Bonsoir, >>>> la première réponse à ce post le 25/10 à 17h12 calcule bien le produit ! >>>> Mais elle est un peu plus lourde que celle d'Isabelle, c'est vrai >>>> -- >>>> Cordialement >>>> >>>> a écrit dans le message >>>> denews: .com... >>>> Merci pour tous vos réponses c'est super, je vais essayer de l'ada pter >>>> à mon fichier. >>>> La solution qui me paraissait la plus adaptée serai celle de JP re pris >>>> par Isabelle sauf que la macro ne fait pas les bons calculs (les cas es >>>> valent 1, 2, 3, 4, 5, 6 et non les valeurs que j'avais indiqué et elle >>>> calcul la somme et non le produit des cases cochées). >>>> Merci pour votre aide- Masquer le texte des messages précédents - >>> - Afficher le texte des messages précédents - >> C'est super, j'avais pas compris que je pouvais changer les valeurs >> merci beaucoup c'est exactement ce qu'il me faut.
>> J'espère pouvoir l'adapter à mon fichier- Masquer le texte des mes sages précédents -
>> - Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -