OVH Cloud OVH Cloud

Somme dans un Userform

5 réponses
Avatar
Dudulle
Bonsoir tout le monde,
Cela me parait tellement bete que j'ai honte de poser cette question tant
elle me parait simple et pourtant.....
J'ai 4 controle dans lesquels je rentre des chiffres.
Dans le 5ème je souhaire récupérer la somme de ces 4 controles.
On ne peut plus simple non ?
Et pourtant je coince.
A bientot
--
Nul n''''est prophète en son pays

5 réponses

Avatar
anonymousA
Bonjour,

Les textboxes ne renvoient que des valeurs textuelles. Il faut les
transformer pour en faire quelque chose de numérique
utiliser les procédures evenementielles Exit sur les Textboxes et dans
celles-ci faire référence à une proc appelée p.e Calcul

Sub Calcul

with me
.Textbox5Íbl(.Textbox1)+Cdbl(.Textbox2)+Cdbl(.Textbox3)+Cdbl(.Textbox4)
end with

end sub

tu peux bien sur en + formater le textbox pour obtenir l'effet souhaité
Enfin, je n'ai pas placé de gestion d'erreur au cas où une des valuers
des Textboxes n'est pas de type compatible avec un Cbdl. A toi de voir
si c'est utile.

A+

Bonsoir tout le monde,
Cela me parait tellement bete que j'ai honte de poser cette question tant
elle me parait simple et pourtant.....
J'ai 4 controle dans lesquels je rentre des chiffres.
Dans le 5ème je souhaire récupérer la somme de ces 4 controles.
On ne peut plus simple non ?
Et pourtant je coince.
A bientot


Avatar
anonymousA
un truc un peu plus complet mais pas élégant. je reconnais que j'ai eu
la flemme de faire plus joli.Dans ce qui suit, on suppose bien sur que
les Texboxes s'appellent Textbox1 à TextBox4 et y'a toujours pas de
gestion d'erreur.

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Calcul
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Calcul
End Sub
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Calcul
End Sub
Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Calcul
End Sub
Sub Calcul()

For I = 1 To 4
If Me.Controls("Textbox" & I) = "" Then Me.Controls("Textbox" & I) = 0
Next

With Me
.TextBox5 = CDbl(.TextBox1) + CDbl(.TextBox2) + CDbl(.TextBox3) +
CDbl(.TextBox4)
End With

End Sub

A+


Bonjour,

Les textboxes ne renvoient que des valeurs textuelles. Il faut les
transformer pour en faire quelque chose de numérique
utiliser les procédures evenementielles Exit sur les Textboxes et dans
celles-ci faire référence à une proc appelée p.e Calcul

Sub Calcul

with me
.Textbox5Íbl(.Textbox1)+Cdbl(.Textbox2)+Cdbl(.Textbox3)+Cdbl(.Textbox4)
end with

end sub

tu peux bien sur en + formater le textbox pour obtenir l'effet souhaité
Enfin, je n'ai pas placé de gestion d'erreur au cas où une des valuers
des Textboxes n'est pas de type compatible avec un Cbdl. A toi de voir
si c'est utile.

A+


Bonsoir tout le monde,
Cela me parait tellement bete que j'ai honte de poser cette question
tant elle me parait simple et pourtant.....
J'ai 4 controle dans lesquels je rentre des chiffres.
Dans le 5ème je souhaire récupérer la somme de ces 4 controles.
On ne peut plus simple non ?
Et pourtant je coince.
A bientot




Avatar
Dudulle
Merci anonymousA pour ta réponse, mais je patauge un peu.
Evidemment, j'ai essayé mais me connaissant ca ne marche pas.
Quelques précisions :
Mes controles porte des noms différents, or dans For I tu mets "Texbox" ?
D'autre part, tous ces codes je les mets où ?
Sub Calcul() se créé comment et se met où ?
Devant TextBox5 il y a 2 pounts, c'est normal ?
Comme tu vois je suis vraiment débutant.
D'avance merci
--


un truc un peu plus complet mais pas élégant. je reconnais que j'ai eu
la flemme de faire plus joli.Dans ce qui suit, on suppose bien sur que
les Texboxes s'appellent Textbox1 à TextBox4 et y'a toujours pas de
gestion d'erreur.

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Calcul
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Calcul
End Sub
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Calcul
End Sub
Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Calcul
End Sub
Sub Calcul()

For I = 1 To 4
If Me.Controls("Textbox" & I) = "" Then Me.Controls("Textbox" & I) = 0
Next

With Me
..TextBox5 = CDbl(.TextBox1) + CDbl(.TextBox2) + CDbl(.TextBox3) +
CDbl(.TextBox4)
End With

End Sub

A+


Bonjour,

Les textboxes ne renvoient que des valeurs textuelles. Il faut les
transformer pour en faire quelque chose de numérique
utiliser les procédures evenementielles Exit sur les Textboxes et dans
celles-ci faire référence à une proc appelée p.e Calcul

Sub Calcul

with me
.Textbox5Íbl(.Textbox1)+Cdbl(.Textbox2)+Cdbl(.Textbox3)+Cdbl(.Textbox4)
end with

end sub

tu peux bien sur en + formater le textbox pour obtenir l'effet souhaité
Enfin, je n'ai pas placé de gestion d'erreur au cas où une des valuers
des Textboxes n'est pas de type compatible avec un Cbdl. A toi de voir
si c'est utile.

A+


Bonsoir tout le monde,
Cela me parait tellement bete que j'ai honte de poser cette question
tant elle me parait simple et pourtant.....
J'ai 4 controle dans lesquels je rentre des chiffres.
Dans le 5ème je souhaire récupérer la somme de ces 4 controles.
On ne peut plus simple non ?
Et pourtant je coince.
A bientot







Avatar
michdenis
Bonjour Dudulle,

dès que tu parles textbox et données numériques, tu dois apprendre à gérer le séparateur décimale.

Certains usagers préfèrent le point comme séparateur décimale tandis que d'autres ont un faible pour la virgule.

Les fonctions de conversion d'excel du genre Cdbl() ont besoin obligatoirement du séparateur défini dans le panneau de configuration
de windows... la fonction Val() pour sa part requiert le point peu importe ce qui est défini dans le panneau de configuration.


Salutations!


"Dudulle" a écrit dans le message de news:
Bonsoir tout le monde,
Cela me parait tellement bete que j'ai honte de poser cette question tant
elle me parait simple et pourtant.....
J'ai 4 controle dans lesquels je rentre des chiffres.
Dans le 5ème je souhaire récupérer la somme de ces 4 controles.
On ne peut plus simple non ?
Et pourtant je coince.
A bientot
--
Nul n''''est prophète en son pays
Avatar
anonymousA
Les codes (y.c la Sub Calcul) sont à mettre dans le module du Userform
qui abrite les controles.
Si tes controles portent un auutre nom que TextBoxX, ca n'est pas bien
grave mais au lieu d'exécuter une boucle , il te faudra porter leurs
noms à chaque fois.
Si il y a 2 points devant TextBox5, c'est en raison du logiciel de news.
Il ne faut evidemment pas mettre 2 points mais un seul point quand on
écrit la macro dans l'éditeur VBE.

Voilà. Tu as un peu de pain sur la planche mais je te rassure, tout le
monde a été débutant un jour. Personne ici ne s'appelle Obelix.

A+

Merci anonymousA pour ta réponse, mais je patauge un peu.
Evidemment, j'ai essayé mais me connaissant ca ne marche pas.
Quelques précisions :
Mes controles porte des noms différents, or dans For I tu mets "Texbox" ?
D'autre part, tous ces codes je les mets où ?
Sub Calcul() se créé comment et se met où ?
Devant TextBox5 il y a 2 pounts, c'est normal ?
Comme tu vois je suis vraiment débutant.
D'avance merci