Division en vba d'une variable par valeur TextBox

Le
Patou
> Ce message est au format MIME. Comme votre programme de lecture de courriers ne comprend pas
ce format, il se peut que tout ou une partie de ce message soit illisible.

--B_3333202249_151182
Content-type: text/plain;
charset="ISO-8859-1"
Content-transfer-encoding: 8bit

Bonjour à tous,
J'ai un User Form qui contient 4 TextBox.
Le premier correspond à une addition, le deuxième une soustraction, le
troisième une multiplication et le dernier une division.
Les trois premiers fonctionnent parfaitement la division(textbox4-change)
plante. ???
Cidessous le deux derniers Multiplication et division
D'avance merci
Patrick

Private Sub TextBox3_Change()
Dim ValCel
ValCel = ActiveCell.Value
With Label6
.Caption = ValCel * TextBox3.Value
End With
End Sub

Private Sub TextBox4_Change()
Dim ValCel
ValCel = ActiveCell.Value
With Label6.Caption = ValCel / TextBox4.Value
End With
End Sub


--B_3333202249_151182
Content-type: text/html;
charset="ISO-8859-1"
Content-transfer-encoding: quoted-printable

<HTML>
<HEAD>
<TITLE>Division en vba d'une variable par valeur TextBox</TITLE>
</HEAD>
<BODY>
<FONT FACE="Verdana, Helvetica, Arial"><SPAN STYLE='font-size:12.0px'>Bonjo=
ur &agrave; tous, <BR>
J'ai un User Form qui contient 4 TextBox. <BR>
Le premier correspond &agrave; une addition, le deuxi&egrave;me une soustra=
ction, le troisi&egrave;me une multiplication et le dernier une division.<BR=
>
Les trois premiers fonctionnent parfaitement la division(textbox4-change) p=
lante. ???<BR>
Cidessous le deux derniers Multiplication et division<BR>
D'avance merci<BR>
Patrick<BR>
<BR>
Private Sub TextBox3_Change()<BR>
Dim ValCel<BR>
ValCel = ActiveCell.Value<BR>
With Label6<BR>
.Caption = ValCel * TextBox3.Value<BR>
End With<BR>
End Sub<BR>
<BR>
<FONT COLOR="#FF0000">Private Sub TextBox4_Change()<BR>
Dim ValCel<BR>
ValCel = ActiveCell.Value<BR>
With Label6.Caption = ValCel &nbsp;/ TextBox4.Value<BR>
End With<BR>
End Sub<BR>
</FONT></SPAN></FONT>
</BODY>
</HTML>


--B_3333202249_151182--
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #19933431
bonjour Patou,

Private Sub TextBox4_Change()
Dim ValCel
ValCel = ActiveCell.Value
Me.Label6.Caption = ValCel / CDbl(Me.TextBox4)
End Sub

isabelle

Patou a écrit :
Bonjour à tous,
J'ai un User Form qui contient 4 TextBox.
Le premier correspond à une addition, le deuxième une soustraction, le
troisième une multiplication et le dernier une division.
Les trois premiers fonctionnent parfaitement la
division(textbox4-change) plante. ???
Cidessous le deux derniers Multiplication et division
D'avance merci
Patrick

Private Sub TextBox3_Change()
Dim ValCel
ValCel = ActiveCell.Value
With Label6
.Caption = ValCel * TextBox3.Value
End With
End Sub

Private Sub TextBox4_Change()
Dim ValCel
ValCel = ActiveCell.Value
With Label6.Caption = ValCel / TextBox4.Value
End With
End Sub


MichDenis
Le #19933421
Bonjour Patou,

Label6.Caption = ValCel / cdbl(TextBox4.Value)

Les fonctions de conversion fonctionnent (cdbl()) qu'avec le séparateur décimale
défini dans le panneau de configuration.





"Patou" C6ACA148.416%
Bonjour à tous,
J'ai un User Form qui contient 4 TextBox.
Le premier correspond à une addition, le deuxième une soustraction, le troisième une
multiplication et le dernier une division.
Les trois premiers fonctionnent parfaitement la division(textbox4-change) plante. ???
Cidessous le deux derniers Multiplication et division
D'avance merci
Patrick

Private Sub TextBox3_Change()
Dim ValCel
ValCel = ActiveCell.Value
With Label6
.Caption = ValCel * TextBox3.Value
End With
End Sub

Private Sub TextBox4_Change()
Dim ValCel
ValCel = ActiveCell.Value
With Label6.Caption = ValCel / TextBox4.Value
End With
End Sub
Benoît Marchand [Benead]
Le #19933411
Bonjour,

Tout dépend du contenu de ton textbox : la division par zéro est
interdite, donc il faut faire un test:

Private Sub TextBox4_Change()
If IsNumeric(TextBox4) And TextBox4 <> 0 Then
Label6.Caption = ActiveCell.Value / TextBox4.Value
Else
Label6.Caption = 0
End If
End Sub

Idéalement il faut interdire toute saisie non numérique (+ séparateur
décimal) grâce à l'événement TextBox4_KeyPress

A+
Benead

Patou a écrit :
Bonjour à tous,
J'ai un User Form qui contient 4 TextBox.
Le premier correspond à une addition, le deuxième une soustraction, le
troisième une multiplication et le dernier une division.
Les trois premiers fonctionnent parfaitement la
division(textbox4-change) plante. ???
Cidessous le deux derniers Multiplication et division
D'avance merci
Patrick

Private Sub TextBox3_Change()
Dim ValCel
ValCel = ActiveCell.Value
With Label6
.Caption = ValCel * TextBox3.Value
End With
End Sub

Private Sub TextBox4_Change()
Dim ValCel
ValCel = ActiveCell.Value
With Label6.Caption = ValCel / TextBox4.Value
End With
End Sub


Patou
Le #19933401
Et en plus ça marche!
Elle est forte cette Isabelle!
Par contre, j'ai pas compris le rôle de CDbl?
Merci infiniment isabelle
Patrick


Le 15/08/09 18:14, dans #, « isabelle »
a écrit :

Me.Label6.Caption = ValCel / CDbl(Me.TextBox4)


Patou
Le #19933381
Tu as raison de le souligner
Merci à tous
Patrick


Le 15/08/09 18:19, dans #, « Benoît
Marchand [Benead] »
Bonjour,

Tout dépend du contenu de ton textbox : la division par zéro est
interdite, donc il faut faire un test:

Private Sub TextBox4_Change()
If IsNumeric(TextBox4) And TextBox4 <> 0 Then
Label6.Caption = ActiveCell.Value / TextBox4.Value
Else
Label6.Caption = 0
End If
End Sub

Idéalement il faut interdire toute saisie non numérique (+ séparateur
décimal) grâce à l'événement TextBox4_KeyPress

A+
Benead

Patou a écrit :
Bonjour à tous,
J'ai un User Form qui contient 4 TextBox.
Le premier correspond à une addition, le deuxième une soustraction, le
troisième une multiplication et le dernier une division.
Les trois premiers fonctionnent parfaitement la
division(textbox4-change) plante. ???
Cidessous le deux derniers Multiplication et division
D'avance merci
Patrick

Private Sub TextBox3_Change()
Dim ValCel
ValCel = ActiveCell.Value
With Label6
.Caption = ValCel * TextBox3.Value
End With
End Sub

Private Sub TextBox4_Change()
Dim ValCel
ValCel = ActiveCell.Value
With Label6.Caption = ValCel / TextBox4.Value
End With
End Sub




isabelle
Le #19933521
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
bonjour Patou,<br>
<br>
c'est pour forcer la valeur "texte" du TexBox (par exemple "8") a &ecirc;tre
reconnu comme &eacute;tant num&eacute;rique (8)<br>
<br>
<table x:str="" style="border-collapse: collapse; width: 394pt;"
border="0" cellpadding="0" cellspacing="0" cols="3" width="525">
<col style="width: 60pt;" span="2" width="80"> <col
style="width: 274pt;" width="365"> <tbody>
<td class="xl23" style="height: 25.5pt; width: 60pt;" height="34"
width="80">Fonction</td>
<td class="xl23" style="border-left: medium none; width: 60pt;"
width="80">Type renvoy&eacute;</td>
<td class="xl23" style="border-left: medium none; width: 274pt;"
width="365">Plage de valeurs de l'argument <font class="font6">expression</font></td>
</tr>
<td class="xl24"
style="border-top: medium none; height: 12.75pt; width: 60pt;"
height="17" width="80">CBool</td>
<td class="xl25"
style="border-top: medium none; border-left: medium none; width: 60pt;"
width="80"> <td class="xl26"
style="border-top: medium none; border-left: medium none; width: 274pt;"
width="365">Toute <font class="font5">cha&icirc;ne</font><font class="font0">
ou expression num&eacute;rique valide.</font></td>
</tr>
<td class="xl24"
style="border-top: medium none; height: 12.75pt; width: 60pt;"
height="17" width="80">CByte</td>
<td class="xl25"
style="border-top: medium none; border-left: medium none; width: 60pt;"
width="80"> <td class="xl26"
style="border-top: medium none; border-left: medium none; width: 274pt;"
width="365">0 &agrave; 255.</td>
</tr>
<td class="xl24"
style="border-top: medium none; height: 12.75pt; width: 60pt;"
height="17" width="80">CCur</td>
<td class="xl25"
style="border-top: medium none; border-left: medium none; width: 60pt;"
width="80"> <td class="xl26"
style="border-top: medium none; border-left: medium none; width: 274pt;"
width="365">-922&nbsp;337&nbsp;203&nbsp;685&nbsp;477,5808 &agrave; 922&nbsp;337&nbsp;203&nbsp;685&nbsp;477,5807.</td>
</tr>
<td class="xl24"
style="border-top: medium none; height: 12.75pt; width: 60pt;"
height="17" width="80">CDate</td>
<td class="xl25"
style="border-top: medium none; border-left: medium none; width: 60pt;"
width="80"> <td class="xl25"
style="border-top: medium none; border-left: medium none; width: 274pt;"
width="365"> date valide.</a></td>
</tr>
<td rowspan="2" class="xl24"
style="border-top: medium none; height: 51pt; width: 60pt;" height="68"
width="80">CDbl</td>
<td rowspan="2" class="xl25"
style="border-top: medium none; width: 60pt;" width="80"><a
href="javascript:hhobj_14.Click()">Double</a></td>
<td class="xl26"
style="border-top: medium none; border-left: medium none; width: 274pt;"
width="365">-1.79769313486231E308 &agrave;</td>
</tr>
<td class="xl26"
style="border-top: medium none; border-left: medium none; height: 38.25pt; width: 274pt;"
height="51" width="365">-4,94065645841247E-324 pour les valeurs
n&eacute;gatives&nbsp;; 4,94065645841247E-324 &agrave; 1,79769313486232E308 pour les
valeurs positives.</td>
</tr>
<td rowspan="2" class="xl24"
style="border-top: medium none; height: 63.75pt; width: 60pt;"
height="85" width="80">CDec</td>
<td rowspan="2" class="xl25"
style="border-top: medium none; width: 60pt;" width="80"><a
href="javascript:hhobj_15.Click()">Decimal</a></td>
<td class="xl26"
style="border-top: medium none; border-left: medium none; width: 274pt;"
width="365">+/-79&nbsp;228&nbsp;162&nbsp;514&nbsp;264&nbsp;337&nbsp;593&nbsp;543&nbsp;950&nbsp;335 pour les nombres
sans d&eacute;cimales. La plage de valeurs des nombres &agrave; 28&nbsp;d&eacute;cimales est</td>
</tr>
<td class="xl26"
style="border-top: medium none; border-left: medium none; height: 25.5pt; width: 274pt;"
height="34" width="365">+/-7,9228162514264337593543950335. Le plus
petit nombre diff&eacute;rent de z&eacute;ro est 0,0000000000000000000000000001.</td>
</tr>
<td class="xl24"
style="border-top: medium none; height: 12.75pt; width: 60pt;"
height="17" width="80">CInt</td>
<td class="xl25"
style="border-top: medium none; border-left: medium none; width: 60pt;"
width="80"> <td class="xl26"
style="border-top: medium none; border-left: medium none; width: 274pt;"
width="365">-32&nbsp;768 &agrave; 32&nbsp;767&nbsp;; les fractions sont arrondies.</td>
</tr>
<td class="xl24"
style="border-top: medium none; height: 25.5pt; width: 60pt;"
height="34" width="80">CLng</td>
<td class="xl25"
style="border-top: medium none; border-left: medium none; width: 60pt;"
width="80"> <td class="xl26"
style="border-top: medium none; border-left: medium none; width: 274pt;"
width="365">-2&nbsp;147&nbsp;483&nbsp;648 &agrave; 2&nbsp;147&nbsp;483&nbsp;647&nbsp;; les fractions sont
arrondies.</td>
</tr>
<td class="xl24"
style="border-top: medium none; height: 25.5pt; width: 60pt;"
height="34" width="80">CSng</td>
<td class="xl25"
style="border-top: medium none; border-left: medium none; width: 60pt;"
width="80"> <td class="xl26"
style="border-top: medium none; border-left: medium none; width: 274pt;"
width="365">-3,402823E38 &agrave; -1,401298E-45 pour les valeurs n&eacute;gatives&nbsp;;
1,401298E-45 &agrave; 3,402823E38 pour les valeurs positives.</td>
</tr>
<td class="xl24"
style="border-top: medium none; height: 25.5pt; width: 60pt;"
height="34" width="80">CStr</td>
<td class="xl25"
style="border-top: medium none; border-left: medium none; width: 60pt;"
width="80"> <td class="xl25"
style="border-top: medium none; border-left: medium none; width: 274pt;"
width="365"><a
href="mk:@MSITStore:C:%5CPROGRA%7E1%5CFICHIE%7E1%5CMICROS%7E1%5CVBA%5CVBA6%5C1036%5CVbLR6.chm::/html/defcstrreturnstable.htm">Les
valeurs renvoy&eacute;es par la fonction Cstr d&eacute;pendent de l'argument
expression.</a></td>
</tr>
<td class="xl24"
style="border-top: medium none; height: 38.25pt; width: 60pt;"
height="51" width="80">CVar</td>
<td class="xl25"
style="border-top: medium none; border-left: medium none; width: 60pt;"
width="80"> <td class="xl26"
style="border-top: medium none; border-left: medium none; width: 274pt;"
width="365">M&ecirc;me plage de valeurs que le type <font class="font5">Double</font><font
class="font0"> pour les nombres et que le type </font><font
class="font5">String</font><font class="font0"> pour les cha&icirc;nes non
num&eacute;riques.</font></td>
</tr>
</tbody>
</table>
<br>
isabelle<br>
<br>
Patou a &eacute;crit&nbsp;:
<pre wrap="">Et en plus &ccedil;a marche!
Elle est forte cette Isabelle!
Par contre, j'ai pas compris le r&ocirc;le de CDbl?
Merci infiniment isabelle
Patrick


Le 15/08/09 18:14, dans #, &laquo;&nbsp;isabelle&nbsp;&raquo;
&lt;&gt; a &eacute;crit&nbsp;:

</pre>
<blockquote type="cite">
<pre wrap="">Me.Label6.Caption = ValCel / CDbl(Me.TextBox4)
</pre>
</blockquote>
<pre wrap=""><!---->
</pre>
</blockquote>
</body>
</html>
Patou
Le #19933511
Une question :
"Idéalement il faut interdire toute saisie non numérique (+ séparateur
décimal) grâce à l'événement TextBox4_KeyPress"
9a se présenterait comment ???
Merci du renseignement
Patrick



Le 15/08/09 18:27, dans C6ACAE83.424%, « Patou »

Idéalement il faut interdire toute saisie non numérique (+ séparateur
décimal) grâce à l'événement TextBox4_KeyPress




MichDenis
Le #19933501
Un petit exemple :
http://cjoint.com/?ipsRBRrUmM



"Patou" C6ACB034.428%

Une question :
"Idéalement il faut interdire toute saisie non numérique (+ séparateur
décimal) grâce à l'événement TextBox4_KeyPress"
9a se présenterait comment ???
Merci du renseignement
Patrick



Le 15/08/09 18:27, dans C6ACAE83.424%, « Patou »

Idéalement il faut interdire toute saisie non numérique (+ séparateur
décimal) grâce à l'événement TextBox4_KeyPress




Patou
Le #19935511
> Ce message est au format MIME. Comme votre programme de lecture de courriers ne comprend pas


ce format, il se peut que tout ou une partie de ce message soit illisible.

--B_3333257473_38910
Content-type: text/plain;
charset="ISO-8859-1"
Content-transfer-encoding: 8bit

Boujour Isabelle,
Merci pour les renseignements.
C¹était le coté double qui m¹avait troublé, j¹avais pas pensé au + ou -
Au plaisir
Patrick


Le 15/08/09 18:33, dans , « isabelle »
a écrit :

bonjour Patou,

c'est pour forcer la valeur "texte" du TexBox (par exemple "8") a être reconnu
comme étant numérique (8)


Fonction Type renvoyé Plage de valeurs de l'argument expression
CBool Boolean numérique valide.
CByte Byte CCur Currency 337 203 685 477,5807.
CDate Date CDbl Double -4,94065645841247E-324 pour les valeurs négatives ; 4,94065645841247E-324 à
1,79769313486232E308 pour les valeurs positives.
CDec Decimal 950 335 pour les nombres sans décimales. La plage de valeurs des nombres à 28
décimales est
+/-7,9228162514264337593543950335. Le plus petit nombre différent de zéro est
0,0000000000000000000000000001.
CInt Integer sont arrondies.
CLng Long fractions sont arrondies.
CSng Single les valeurs négatives ; 1,401298E-45 à 3,402823E38 pour les valeurs positives.
CStr String fonction Cstr dépendent de l'argument expression.
<mk:@MSITStore:C:%5CPROGRA%7E1%5CFICHIE%7E1%5CMICROS%7E1%5CVBA%5CVBA6%5C1036%5
CVbLR6.chm::/html/defcstrreturnstable.htm>
CVar Variant Double pour les nombres et que le type String pour les chaînes non numériques.
isabelle

Patou a écrit :

Et en plus ça marche!
Elle est forte cette Isabelle!
Par contre, j'ai pas compris le rôle de CDbl?
Merci infiniment isabelle
Patrick


Le 15/08/09 18:14, dans #, « isabelle »
a écrit :




Me.Label6.Caption = ValCel / CDbl(Me.TextBox4)















--B_3333257473_38910
Content-type: text/html;
charset="ISO-8859-1"
Content-transfer-encoding: quoted-printable

<HTML>
<HEAD>
<TITLE>Re: Division en vba d'une variable par valeur TextBox</TITLE>
</HEAD>
<BODY>
Merci pour les renseignements.<BR>
C&#8217;&eacute;tait le cot&eacute; double qui m&#8217;avait troubl&eacute; , j&#8217;avais pas pens&eacute; au + ou -<BR>
Au plaisir<BR>
Patrick<BR>
<BR>
<BR>
Le 15/08/09 18:33, dans , &laquo; isab elle &raquo; &lt;&gt; a &eacute;crit :<BR>
<BR>
<BR>
c'est pour forcer la valeur &quot;texte&quot; du TexBox (par exemple &quot; 8&quot;) a &ecirc;tre reconnu comme &eacute;tant num&eacute;rique (8)<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;<BR>
&nbsp;Fonction Type renvoy&eacute; Plage de valeurs de l'argument expressio n &nbsp;<BR>
&nbsp;CBool Boolean &lt;javascript:hhobj_9.Click()&gt; &nbsp;Toute cha&icir c;ne ou expression num&eacute;rique valide. &nbsp;<BR>
&nbsp;CByte Byte &lt;javascript:hhobj_10.Click()&gt; &nbsp;0 &agrave; 255. &nbsp;<BR>
&nbsp;CCur Currency &lt;javascript:hhobj_11.Click()&gt; &nbsp;-922 337 203 685 477,5808 &agrave; 922 337 203 685 477,5807. &nbsp;<BR>
&nbsp;CDate Date &lt;javascript:hhobj_12.Click()&gt; &nbsp;Toute expression de date valide. &lt;javascript:hhobj_13.Click()&gt; &nbsp;&nbsp;<BR>
&nbsp;CDbl Double &lt;javascript:hhobj_14.Click()&gt; &nbsp;-1.797693134862 31E308 &agrave; &nbsp;<BR>
&nbsp;-4,94065645841247E-324 pour les valeurs n&eacute;gatives ; 4,94065645 841247E-324 &agrave; 1,79769313486232E308 pour les valeurs positives. &nbsp; <BR>
&nbsp;CDec Decimal &lt;javascript:hhobj_15.Click()&gt; &nbsp;+/-79 228 162 514 264 337 593 543 950 335 pour les nombres sans d&eacute;cimales. La plage de valeurs des nombres &agrave; 28 d&eacute;cimales est &nbsp;<BR>
&nbsp;+/-7,9228162514264337593543950335. Le plus petit nombre diff&eacute;r ent de z&eacute;ro est 0,0000000000000000000000000001. &nbsp;<BR>
&nbsp;CInt Integer &lt;javascript:hhobj_16.Click()&gt; &nbsp;-32 768 &agrav e; 32 767 ; les fractions sont arrondies. &nbsp;<BR>
&nbsp;CLng Long &lt;javascript:hhobj_17.Click()&gt; &nbsp;-2 147 483 648 &a grave; 2 147 483 647 ; les fractions sont arrondies. &nbsp;<BR>
&nbsp;CSng Single &lt;javascript:hhobj_18.Click()&gt; &nbsp;-3,402823E38 &a grave; -1,401298E-45 pour les valeurs n&eacute;gatives ; 1,401298E-45 &agrav e; 3,402823E38 pour les valeurs positives. &nbsp;<BR>
&nbsp;CStr String &lt;javascript:hhobj_19.Click()&gt; &nbsp;Les valeurs ren voy&eacute;es par la fonction Cstr d&eacute;pendent de l'argument expression . &lt;mk:@MSITStore:C:%5CPROGRA%7E1%5CFICHIE%7E1%5CMICROS%7E1%5CVBA%5CVBA6%5 C1036%5CVbLR6.chm::/html/defcstrreturnstable.htm&gt; &nbsp;&nbsp;<BR>
&nbsp;CVar Variant &lt;javascript:hhobj_20.Click()&gt; &nbsp;M&ecirc;me pla ge de valeurs que le type Double pour les nombres et que le type String pour les cha&icirc;nes non num&eacute;riques. &nbsp;<BR>
isabelle<BR>
<BR>
Patou a &eacute;crit : <BR>
Et en plus &ccedil;a marche!<BR>
Elle est forte cette Isabelle!<BR>
Par contre, j'ai pas compris le r&ocirc;le de CDbl?<BR>
Merci infiniment isabelle<BR>
Patrick<BR>
<BR>
<BR>
Le 15/08/09 18:14, dans #, &laquo; isab elle &raquo;<BR>
&lt;&gt; a &eacute;crit :<BR>
<BR>
&nbsp;&nbsp;<BR>
&nbsp;<BR>
Me.Label6.Caption = ValCel / CDbl(Me.TextBox4)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;<BR>
&nbsp;<BR>
<BR>
&nbsp;&nbsp;<BR>
</SPAN></FONT>
</BODY>
</HTML>


--B_3333257473_38910--
Patou
Le #19935531
Super merci
Au plaisir
Patrick


Le 15/08/09 18:43, dans , « MichDenis »

Un petit exemple :
http://cjoint.com/?ipsRBRrUmM



"Patou" C6ACB034.428%

Une question :
"Idéalement il faut interdire toute saisie non numérique (+ séparateur
décimal) grâce à l'événement TextBox4_KeyPress"
9a se présenterait comment ???
Merci du renseignement
Patrick



Le 15/08/09 18:27, dans C6ACAE83.424%, « Patou »

Idéalement il faut interdire toute saisie non numérique (+ séparateur
décimal) grâce à l'événement TextBox4_KeyPress







Publicité
Poster une réponse
Anonyme