Multiplication dans Textbox

Résolu/Fermé
Mik - 13 nov. 2008 à 11:41
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 - 13 nov. 2008 à 13:25
Bonjour forumeuse et forumeur,

Je suis débutant en visual basic et j'aimerais savoir s'il est possible de multiplier des textbox.
J'ai crée une userform avec trois textbox et j'aimerais que la textbox 3 affiche automatiquement le resultat de la multiplication de la textbox1 x textbox 2.
genre:

Textbox3.value= val((textbox1.value) * (textbox2.value))

ce code ne fonctionne pas hélas :(

merci d'avance à qui me répondra

3 réponses

xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
13 nov. 2008 à 11:42
Bonjour,
Ceci est effectivement possible.
Donc si j'ai bien compris, vous avez une userform avec 3 textbox, vous remplissez les deux premieres et ensuite vous voulez que la 3eme se remplisse automatiquement c'est bien cela?
0
bonjour Xav3601,

Effectivement c'est bien cela, j'ai trois textbox qui sont disposées comme suite:
-textbox 1= surface en m²
-textbox 2 = nbr de m²
-textbox 3= total (et j'aimerais qu'il se remplisse automatiquement mais également laissant libre saisie)

merçi pour la rapidité
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
13 nov. 2008 à 11:52
Alors pour ce faire,
vous avez des fonction dans votre macro pour chacune des deux textbox a remplir manuellement du genre:

Private Sub textbox1_change()
Form1.textbox1=Form1.textbox1.value 'afin de recuperer la valeur taper
if Form1.textbox2 <> "" then 'si la textbox2 est deja rempli
Form1.textbox3=Form1.textbox1 * if Form1.textbox2 'on fais la multiplication
End If
End Sub

Private Sub textbox2_change()
Form1.textbox2=Form1.textbox2.value 'afin de recuperer la valeur taper
if Form1.textbox1 <> "" then
Form1.textbox3=Form1.textbox1 * if Form1.textbox2
End If
End Sub

Ca devrais a priori marcher.
0
Merci de la réponce,

Alors il y a quelques petits erreurs du au copier coller ^^ mais ça c'est bon c'est résolu. 5.
Mon problème se trouve sur la ligne:
Form1.textbox1=Form1.textbox1.value

je ne sais pas si ça change quelque chose mais mes textbox sont enfaites
textbox7
" 8
" 9

mais je pense que ça n'a aucune importance pour les form.

j'essayes de trouver une solution de mon coté mais je vous remercie de votre aide
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311 > Mik
13 nov. 2008 à 12:07
Le nom des textbox n'as aucune importance, il suffit juste que ce soit la même des chaques coté :)
0
Mik > xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016
13 nov. 2008 à 12:16
Alors débutant oblige je viens juste de comprendre que Form1= Userform1 hors moi c'est UserForm2 donc en gros ça fonctionne mieux avec la bonne UserForm ;).

Je remercie donc xav3601, et en ce qui concerne Develloper_man du fait que le code de xav3601 fonctionne je n'ai pas testé le votre. De surcroit il fait peur pour un novice lol.
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311 > Mik
13 nov. 2008 à 13:25
Oups desole!
en fait je pense que le nom standard etait form mais en fait c'est userform c'est juste...
0
developper_man Messages postés 44 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 14 novembre 2008 5
13 nov. 2008 à 12:01
voila :) un peu bargo , mais ça fonctionne ... pour éviter les test ;)

Private Sub txt_surface_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt_surface.TextChanged
calcule()
End Sub
Private Sub txt_nombre_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt_nombre.TextChanged
calcule()
End Sub
Private Sub calcule()
If Not (txt_surface.Text = "" Or txt_nombre.Text = "") Then
Try
txt_total.Text = CType(txt_surface.Text, Double) * CType(txt_nombre.Text, Double)
Catch ex As Exception
txt_total.Text = "impossible"
End Try
Else
txt_total.Text = "impossible"
End If
End Sub
0