OVH Cloud OVH Cloud

Problème d'addition en VBA

7 réponses
Avatar
Nat
Je souhaite additionner des données d'un formulaire c'est à dire que j'ai un
formulaire avec un certain nombre de lignes dont le code est
Private Sub Pant_Base_Nbre_AfterUpdate()

If Pant_Base = "" Then
Pant_Base_Total = ""
Else
Pant_Base_Total = Pant_Base_Pts.Value * Pant_Base_Nbre.Value
Total_Pts_1 = Pant_Base_Total + Veste_Base_Total + Comb_Base_Total +
Blouse_Base_Total + Polo_IM_Total + Pant_Fin_Total + Vest_IM_Total +
Pant_Epais_Total + Comb_IM_Total + Cotte_IM_Total
End If
End Sub (Ce code est répété autant de fois qu'il existe de ----_----_Nbre
dans mon formulaire)

Tout va bien jusqu'a la multiplication qui me rapatrie bien dans la case
Pant_Base_Total le résultat de la multiplication, par contre dans le champ
Total_Pts_1 j'ai le cumul des valeurs des ---_----_Total sous le forme 123
par exemple au lieu du résultat de l'addition qui devrait être 6
Merci pour vos réponses

7 réponses

Avatar
Philippe.R
Bonjour Nathalie,
Contrairement aux apparences, ce n'est pas un gros mot ;o))
Fais un essai avec :

Total_Pts_1 = sum(Pant_Base_Total ,Veste_Base_Total,Comb_Base_Total, _
Blouse_Base_Total,Polo_IM_Total,Pant_Fin_Total,Vest_IM_Total, _
Pant_Epais_Total,Comb_IM_Total,Cotte_IM_Total)

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Nat" a écrit dans le message de news:
4186219f$0$3592$
Je souhaite additionner des données d'un formulaire c'est à dire que j'ai un
formulaire avec un certain nombre de lignes dont le code est
Private Sub Pant_Base_Nbre_AfterUpdate()

If Pant_Base = "" Then
Pant_Base_Total = ""
Else
Pant_Base_Total = Pant_Base_Pts.Value * Pant_Base_Nbre.Value
Total_Pts_1 = Pant_Base_Total + Veste_Base_Total + Comb_Base_Total +
Blouse_Base_Total + Polo_IM_Total + Pant_Fin_Total + Vest_IM_Total +
Pant_Epais_Total + Comb_IM_Total + Cotte_IM_Total
End If
End Sub (Ce code est répété autant de fois qu'il existe de ----_----_Nbre
dans mon formulaire)

Tout va bien jusqu'a la multiplication qui me rapatrie bien dans la case
Pant_Base_Total le résultat de la multiplication, par contre dans le champ
Total_Pts_1 j'ai le cumul des valeurs des ---_----_Total sous le forme 123
par exemple au lieu du résultat de l'addition qui devrait être 6
Merci pour vos réponses




Avatar
Nat
Tout d'abord merci pour ta réponse, mais après essai cela ne marche pas,
j'ai le message suivant :
Sub ou Function non définie !!

"Philippe.R" a écrit dans le message de
news:eusP$
Bonjour Nathalie,
Contrairement aux apparences, ce n'est pas un gros mot ;o))
Fais un essai avec :

Total_Pts_1 = sum(Pant_Base_Total ,Veste_Base_Total,Comb_Base_Total, _
Blouse_Base_Total,Polo_IM_Total,Pant_Fin_Total,Vest_IM_Total, _
Pant_Epais_Total,Comb_IM_Total,Cotte_IM_Total)

--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Nat" a écrit dans le message de news:
4186219f$0$3592$
Je souhaite additionner des données d'un formulaire c'est à dire que
j'ai un


formulaire avec un certain nombre de lignes dont le code est
Private Sub Pant_Base_Nbre_AfterUpdate()

If Pant_Base = "" Then
Pant_Base_Total = ""
Else
Pant_Base_Total = Pant_Base_Pts.Value * Pant_Base_Nbre.Value
Total_Pts_1 = Pant_Base_Total + Veste_Base_Total + Comb_Base_Total +
Blouse_Base_Total + Polo_IM_Total + Pant_Fin_Total + Vest_IM_Total +
Pant_Epais_Total + Comb_IM_Total + Cotte_IM_Total
End If
End Sub (Ce code est répété autant de fois qu'il existe
de ----_----_Nbre


dans mon formulaire)

Tout va bien jusqu'a la multiplication qui me rapatrie bien dans la case
Pant_Base_Total le résultat de la multiplication, par contre dans le
champ


Total_Pts_1 j'ai le cumul des valeurs des ---_----_Total sous le forme
123


par exemple au lieu du résultat de l'addition qui devrait être 6
Merci pour vos réponses








Avatar
AV
Si tes plages (Pant_Base_Total,Veste_Base_Total,Comb_Base.....) sont bien
définies :
Total_Pts_1 [sum(Pant_Base_Total,Veste_Base_Total,Comb_Base,...........,Cotte_IM_Total)]

AV
Avatar
Nat
Merci pour ta réponse mais qui me donne toujours le meme message d'erreur,
justement peut être que
mes plages ne sont pas bien définies !! Comment faire pour ?

"AV" a écrit dans le message de
news:
Si tes plages (Pant_Base_Total,Veste_Base_Total,Comb_Base.....) sont bien
définies :
Total_Pts_1 >
[sum(Pant_Base_Total,Veste_Base_Total,Comb_Base,...........,Cotte_IM_Total)]


AV




Avatar
AV
Merci pour ta réponse mais qui me donne toujours le meme message d'erreur,
justement peut être que
mes plages ne sont pas bien définies !! Comment faire pour ?


Est-ce toi qui a écrit le code ?
A quoi correspondent "Pant_Base_Total,Veste_Base_Total,Comb_Base,..........."etc
?
Pour vérifier si les noms sont définis Insertion > Nom > Définir et regarde la
liste...s'il y en a une

AV

Avatar
Nat
J'ai l'impression qu'il y a une erreur de compréhension, oui c'est moi qui
ai construit le code mais il
s'agit de code dans un Userform et non dans Excel classique :
J'ai un userform pour saisir ma dotation vestimentaire dans lequel j'ai une
case à cocher pour le type de vet,
puis les Pts unitaire, puis Nbre (souhaité par l'agent), la taille et les
points total par ligne.
Dans la case à cocher du vêt le code est Private Sub Pant_Base_Change()
Pant_Base_Pts = 1
End Sub
Ensuite dans Nbre le code suivant : Private Sub Pant_Base_Nbre_AfterUpdate()

If Pant_Base = "" Then
Pant_Base_Total = ""
Else
Pant_Base_Total = Pant_Base_Pts.Value * Pant_Base_Nbre.Value
Total_Pts_1 = [Sum(Pant_Base_Total, Veste_Base_Total, Comb_Base_Total,
Blouse_Base_Total, Polo_IM_Total, _
Pant_Fin_Total, Vest_IM_Total, Pant_Epais_Total, Comb_IM_Total,
Cotte_IM_Total)]
End If
End Sub
et à la fin de mon tableau j'ai bien entendu le Total_Pts_1 qui doit donner
le résultat de l'addition de tous mes totaux
et qui me donne toujours le résultat cumulé des totaux sous la forme 123 et
non 6
Voila j'espère que je suis plus explicite cette fois

Ensuite
"AV" a écrit dans le message de
news:%
Merci pour ta réponse mais qui me donne toujours le meme message
d'erreur,


justement peut être que
mes plages ne sont pas bien définies !! Comment faire pour ?


Est-ce toi qui a écrit le code ?
A quoi correspondent
"Pant_Base_Total,Veste_Base_Total,Comb_Base,..........."etc

?
Pour vérifier si les noms sont définis Insertion > Nom > Définir et
regarde la

liste...s'il y en a une

AV





Avatar
AV
Ok je comprends mieux ! C'est moi qui avais lu en diagonale...
Tes variables (Pant_Base_Pts,Veste_Base_Total....) sont bien déclarées en tête
de module (private ou public) ?
Si oui, une simple addition devrait suffire :
Total_Pts_1 = Pant_Base_Total + Veste_Base_Total + Comb_Base_Total + ..
Si ton total donne 123 ou un truc de ce genre c'est qu'il y a concaténation et
non addition
Voir, dans ce cas, la déclarartion de variable ou un ersatz :
Total_Pts_1 = (Pant_Base_Total*1) + (Veste_Base_Total*1) + (Comb_Base_Total*1) +
..

AV