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

Calcul d'un résultat en fonction des cases cochées

21 réponses
Avatar
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

Est-ce possible?

Merci d'avance

10 réponses

1 2 3
Avatar
JPMonnier
Salut Isabelle,
Ta proc fonctionne à merveille !
Il est évident que le but est qu'il y ait au moins 1 ch de coché dans les 3
premiers (a,b,c) et 1 dans les 3 seconds(d,e,f)
comme dans la demande
au début du post
Il faut rajouter un contrôle des ch cochés
Bon dimanche
--
Cordialement

"isabelle" a écrit dans le message de
news:O%
salut JP,

pas sur de bien comprendre, si aucun de d,e,f n'est coché le résultat sera
0

Sub CompteAvecCheckBox()
Dim Sh As Shape
Cells(1, 7) = 0
On Error Resume Next
With Feuil1
For Each Sh In .Shapes
If TypeName(Sh.OLEFormat.Object.Object) = "CheckBox" Then
i = i + 1
If Sh.OLEFormat.Object.Object.Value = "Vrai" Then
Select Case i
Case Is <= 3: x = x + Cells(1, i)
Case Is > 3: y = y + Cells(1, i)
End Select
End If
End If
Next
End With
Cells(1, 7) = x * y
End Sub

isabelle


JPMonnier a écrit :
Bonsoir Isabelle,
Belle petite proc, je suis aussi adepte des for each
En revanche, il faut analyser a, b, c puis d, e, f et les multiplier
entre eux !
ne pas cumuler a + b + c + d + e + f
On pourrait aussi utiliser select case suivant chx !





Avatar
Sam
Bonjour Isabelle et JP,
question d'un novice en VBA : pourquoi n'avoir pas affecté directement à x
et à y leur valeur dans les Private Sub (Feuil1)
L'appel à calcul aurait ainsi pu être remplacé par [g1] = x* y

Cordialement
Michel dit "Sam"

"JPMonnier" a écrit dans le message de news:

Salut Isabelle,
Ta proc fonctionne à merveille !
Il est évident que le but est qu'il y ait au moins 1 ch de coché dans les
3 premiers (a,b,c) et 1 dans les 3 seconds(d,e,f)
comme dans la demande
au début du post
Il faut rajouter un contrôle des ch cochés
Bon dimanche
--
Cordialement

"isabelle" a écrit dans le message de
news:O%
salut JP,

pas sur de bien comprendre, si aucun de d,e,f n'est coché le résultat
sera 0

Sub CompteAvecCheckBox()
Dim Sh As Shape
Cells(1, 7) = 0
On Error Resume Next
With Feuil1
For Each Sh In .Shapes
If TypeName(Sh.OLEFormat.Object.Object) = "CheckBox" Then
i = i + 1
If Sh.OLEFormat.Object.Object.Value = "Vrai" Then
Select Case i
Case Is <= 3: x = x + Cells(1, i)
Case Is > 3: y = y + Cells(1, i)
End Select
End If
End If
Next
End With
Cells(1, 7) = x * y
End Sub

isabelle


JPMonnier a écrit :
Bonsoir Isabelle,
Belle petite proc, je suis aussi adepte des for each
En revanche, il faut analyser a, b, c puis d, e, f et les multiplier
entre eux !
ne pas cumuler a + b + c + d + e + f
On pourrait aussi utiliser select case suivant chx !








Avatar
newoceane2000
Merci pour tous vos réponses c'est super, je vais essayer de l'adapter
à mon fichier.

La solution qui me paraissait la plus adaptée serai celle de JP repris
par Isabelle sauf que la macro ne fait pas les bons calculs (les cases
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
Avatar
JPMonnier
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 de
news:
Merci pour tous vos réponses c'est super, je vais essayer de l'adapter
à mon fichier.

La solution qui me paraissait la plus adaptée serai celle de JP repris
par Isabelle sauf que la macro ne fait pas les bons calculs (les cases
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
Avatar
newoceane2000
Bonsoir,

Effectivement cette macro cacule bien le produit cependant y a t-il un
moyen d'affecter aux cases à cocher des 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 pr oduit !
Mais elle est un peu plus lourde que celle d'Isabelle, c'est vrai
--
Cordialement

a écrit dans le message denews:ff5f8258-e8d3-4
Merci pour tous vos réponses c'est super, je vais essayer de l'adapter
à mon fichier.

La solution qui me paraissait la plus adaptée serai celle de JP repris
par Isabelle sauf que la macro ne fait pas les bons calculs (les cases
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


Avatar
JPMonnier
Bonsoir, dans les cellules A1,B1,C1,D1,E1,F1 tu entres les valeurs que tu
veux
--
Cordialement


a écrit dans le message de
news:
Bonsoir,

Effectivement cette macro cacule bien le produit cependant y a t-il un
moyen d'affecter aux cases à cocher des 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:
Merci pour tous vos réponses c'est super, je vais essayer de l'adapter
à mon fichier.

La solution qui me paraissait la plus adaptée serai celle de JP repris
par Isabelle sauf que la macro ne fait pas les bons calculs (les cases
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


Avatar
newoceane2000
On 28 oct, 21:42, "JPMonnier" wrote:
Bonsoir, dans les cellules A1,B1,C1,D1,E1,F1 tu entres les valeurs que tu
veux
--
Cordialement


a écrit dans le message denews:840ce9de-7d32-4
Bonsoir,

Effectivement cette macro cacule bien le produit cependant y a t-il un
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: m...
> Merci pour tous vos réponses c'est super, je vais essayer de l'adapte r
> à mon fichier.

> La solution qui me paraissait la plus adaptée serai celle de JP repri s
> par Isabelle sauf que la macro ne fait pas les bons calculs (les cases
> valent 1, 2, 3, 4, 5, 6 et non les valeurs que j'avais indiqué et ell e
> 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
Avatar
JPMonnier
Bonsoir,
Si tu as des soucis, n'hésite pas ou envoie moi ton fichier sur cjoint
--
Cordialement

a écrit dans le message de
news:
On 28 oct, 21:42, "JPMonnier" wrote:
Bonsoir, dans les cellules A1,B1,C1,D1,E1,F1 tu entres les valeurs que tu
veux
--
Cordialement


a écrit dans le message
denews:
Bonsoir,

Effectivement cette macro cacule bien le produit cependant y a t-il un
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:
> Merci pour tous vos réponses c'est super, je vais essayer de l'adapter
> à mon fichier.

> La solution qui me paraissait la plus adaptée serai celle de JP repris
> par Isabelle sauf que la macro ne fait pas les bons calculs (les cases
> 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
Avatar
newoceane2000
Bonsoir,

Je reviens vers vous car j'essai d'adapter mon fichier à vos réponses
mais j'ai un peu de mal.

Vu que mon fichier comporte 10 paramètres avec pour chaque paramètre
plusieurs cases à cocher possibles, la solution d'Isabelle me semble
plus simple. J'ai essayé d'adapter son code mais le résultat du calcul
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) = "CheckBox" Then
i = i + 1
If Sh.OLEFormat.Object.Object.Value = "Vrai" Then
Select Case i
Case 1 To 5: x = x + Cells(1, i)
Case 6 To 7: y = y + Cells(1, i)
Case 8 To 17: a = a + Cells(1, i)
Case 18 To 19: b = b + Cells(1, i)
Case 20 To 21: c = c + Cells(1, i)
Case 22 To 24: d = d + Cells(1, i)
Case 25 To 29: e = e + Cells(1, i)
Case 30 To 31: f = f + Cells(1, i)
Case 32 To 35: g = g + Cells(1, i)
Case 36 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 39 case à cocher :
pour le paramètre 1, je peux cocher la case 1 ou 2 ou 3 ....ou 5
pour le paramètre 2, je peux cocher la case 6 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 cjoint
--
Cordialement

a écrit dans le message denews:5120fe06-25bf-4
On 28 oct, 21:42, "JPMonnier" wrote:





> Bonsoir, dans les cellules A1,B1,C1,D1,E1,F1 tu entres les valeurs que tu
> veux
> --
> Cordialement
>

> a écrit dans le message
> denews: m...
> Bonsoir,

> Effectivement cette macro cacule bien le produit cependant y a t-il un
> moyen d'affecter aux cases àcocherdes valeurs bien spécifique et no n
> 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 l e 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'adap ter
> > à mon fichier.

> > La solution qui me paraissait la plus adaptée serai celle de JP rep ris
> > par Isabelle sauf que la macro ne fait pas les bons calculs (les case s
> > valent 1, 2, 3, 4, 5, 6 et non les valeurs que j'avais indiqué et e lle
> > 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 messag es précédents -

- Afficher le texte des messages précédents -


Avatar
isabelle
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éponses
mais j'ai un peu de mal.

Vu que mon fichier comporte 10 paramètres avec pour chaque paramètre
plusieurs cases à cocher possibles, la solution d'Isabelle me semble
plus simple. J'ai essayé d'adapter son code mais le résultat du calcul
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) = "CheckBox" Then
i = i + 1
If Sh.OLEFormat.Object.Object.Value = "Vrai" Then
Select Case i
Case 1 To 5: x = x + Cells(1, i)
Case 6 To 7: y = y + Cells(1, i)
Case 8 To 17: a = a + Cells(1, i)
Case 18 To 19: b = b + Cells(1, i)
Case 20 To 21: c = c + Cells(1, i)
Case 22 To 24: d = d + Cells(1, i)
Case 25 To 29: e = e + Cells(1, i)
Case 30 To 31: f = f + Cells(1, i)
Case 32 To 35: g = g + Cells(1, i)
Case 36 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 39 case à cocher :
pour le paramètre 1, je peux cocher la case 1 ou 2 ou 3 ....ou 5
pour le paramètre 2, je peux cocher la case 6 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 cjoint
--
Cordialement

a écrit dans le message denews:
On 28 oct, 21:42, "JPMonnier" wrote:





Bonsoir, dans les cellules A1,B1,C1,D1,E1,F1 tu entres les valeurs que tu
veux
--
Cordialement

a écrit dans le message
denews:
Bonsoir,
Effectivement cette macro cacule bien le produit cependant y a t-il un
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:
Merci pour tous vos réponses c'est super, je vais essayer de l'adapter
à mon fichier.
La solution qui me paraissait la plus adaptée serai celle de JP repris
par Isabelle sauf que la macro ne fait pas les bons calculs (les cases
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 messages précédents -

- Afficher le texte des messages précédents -





1 2 3