Calcul avec TextBox

Gix

XLDnaute Occasionnel
Bonjour à vous tous,

J'essaye d'effectuer certain calcul avec des TextBox, mais il me faut un petit coup de main pour mettre certaines conditions en place , voilà dont j'ai besoin d'écrire sur événement change.

Private Sub TextBox6_Change ()
Si valeur saisie dans TB6 n'est pas numérique
MsgBox " valeur bla bla "
TB6.value = " "
Sortir de la procédure
Si un des TB7 ou TB8 n'est pas renseigné sortir de la procédure sans vider TB6
Fin de la condition

Macro si toute condition OK

End Sub

Je connais la méthode

If Not IsNumeric ( TB6.Value) Then
MsgBox " Bla Bla "
TB6.Value = " "
Exit Sub
End if

Mais cela ne fonctionne pas correctement, il apparaît MsgBox 2 fois l'une après l'autre car c'est sur événement change et comme il doit vider le TB6 voilà pourquoi apparaît le 2 ème MsgBox
Donc c'est mon premier problème, et pour le reste des conditions si TB7 ou TB8 est vide sortir de la procédure
Là je bloque complet
Merci d'avance pour vos lumières.
Gix.
 

Pierrot93

XLDnaute Barbatruc
Re : Calcul avec TextBox

Bonsoir Gix

suis pas sur qu'il faille utiliser l'évènement change dans ce cas, car il se déclenche sur la saisie de chaque caractère, je verrais plus l'évènement "Exit" ou "AfterUpdate" dans ce cas...


sur ton test avec la fonction "IsNumeric", méfie toi un testbox renvoie une donnée texte (string), il y a leur de convertir avec la fonction "Val" ou "CDbl" comme ci dessous :
Code:
If Not IsNumeric  Val(TB6.Value)) Then

bonne soirée
@+
 

Gix

XLDnaute Occasionnel
Re : Calcul avec TextBox

Bonsoir à tous, Pierrot, Pierre Jean,

Merci de m'avoir donné des idées, mais finalement je me rends compte que ce n'est pas aussi simple que ça.
Je vous fais passer le fichier qui me pose souci malheureusement je n'arrive pas à me débrouiller seul .

En effet ce que j'essaie de faire avec TBox c'est exactement la même chose que je possède en formule dans mon classeur ci-joint.
Vous verrez dans la macro CalculTB la méthode de calcul très certainement pas orthodoxe, alors si on peut faire autrement cela ne dérrange pas surtout si on peut supprimer TextBox13 et TextBox14.
Merci d'avance et au plaisir de vous lire.
Gix.
 

Pièces jointes

  • TBox_Resultat_v1.zip
    18.5 KB · Affichages: 51
  • TBox_Resultat_v1.zip
    18.5 KB · Affichages: 48
  • TBox_Resultat_v1.zip
    18.5 KB · Affichages: 50

Bebere

XLDnaute Barbatruc
Re : Calcul avec TextBox

bonsoir Gix

une somme avec virgule*0.196 çà ne va pas
tu fais comme suit
dim MaTaxe as variant
MaTaxe=cdbl("0,196")'0,196 entre parenthèses
matva=masomme*mataxe
tu fais un contrôle des saisies sur les textbox ou tu fais des entrées

du code pour controler les saisies dans les textbox

'avec la virgule non valide (entier)
'contrôle caractère par caractère
Private Sub textBox1_Change()
On Error Resume Next

If Not IsNumeric(Right(TextBox1, 1)) Then
MsgBox "Le caractere saisi n'est pas valide"
TextBox1 = Left(TextBox1, Len(TextBox1) - 1)
End If
End Sub

Vba

'avec la virgule valide(décimale)
'contrôle caractère par caractère
Private Sub textBox1_Change()
On Error Resume Next

If Not IsNumeric(Right(TextBox1, 1)) And Right(TextBox1, 1) <> "," Then
MsgBox "Le caractere saisi n'est pas valide"
TextBox1 = Left(TextBox1, Len(TextBox1) - 1)
End If
End Sub


Un autre exemple pour autoriser uniquement la saisie de valeurs numériques dans un TextBox

'Auteur Didier MdF
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Is < 48, Is > 57
KeyAscii = 0
End Select
End Sub
si jai le temps demain je regarde ton fichier

à bientôt
 

Bebere

XLDnaute Barbatruc
Re : Calcul avec TextBox

bonjour Gix,Pierre-Jean,Pierrot
un double salut pour Pierre-Jean et Pierrot que j'ai oublié hier
formule consacrée:revu et corrigé
suggestion ajouter une colonne tva pour chaque article
à bientôt
 

Pièces jointes

  • TBox_Resultat_v1.zip
    26.3 KB · Affichages: 55
  • TBox_Resultat_v1.zip
    26.3 KB · Affichages: 55
  • TBox_Resultat_v1.zip
    26.3 KB · Affichages: 49

pierrejean

XLDnaute Barbatruc
Re : Calcul avec TextBox

bonjour Gix

salut bebere

un des problemes est que la macro textbox6_change est declanchée chaque fois que l'on modifie la valeur de textbox6
il faut donc l'encadrercommes suit
flag=True
Textobox6= quelquechose
flag=false
ensuite pour faire disparaitre les textbox13 et 14 je les ai remplaçées par des variables (il y apeut-etre plus simple !)

vois si cela te convient

re salut bebere

avais pas rafraichi
 

Pièces jointes

  • TBox_Resultat_v1.zip
    16.8 KB · Affichages: 48
  • TBox_Resultat_v1.zip
    16.8 KB · Affichages: 46
  • TBox_Resultat_v1.zip
    16.8 KB · Affichages: 47

Bebere

XLDnaute Barbatruc
Re : Calcul avec TextBox

salut Pierre-Jean
chez moi çà bugue à la fin du code commandbutton1
je l'ai changé comme suit


Me.TBoxHT = Somme
Me.TBoxTVA = CDbl(TBoxHT) * CDbl("0,196")
Me.TBoxTTC = CDbl(TBoxHT) + CDbl(TBoxTVA)

Me.TBoxTVA = Format(TBoxTVA, "#,##0.00 €")
Me.TBoxHT = Format(TBoxHT, "#,##0.00 €")
Me.TBoxTTC = Format(TBoxTTC, "#,##0.00 €")

à bientôt
 

Gix

XLDnaute Occasionnel
Re : Calcul avec TextBox

Bonjour à vous tous, bébère , PierreJean

Merci mes amis pour vorte aide et je me rends compte de la difficulté de la tâche, sincèrement je ne voyais pas cela aussi compliqué.

Bébère, merci pour les tuyaux de ton post à 22h03, je les garde dans mes archives.
Concernant la proposition de ton fichier joint,il s'avère qu'il y a un petit problème, le résultat HT TB9 n'est pas juste il doit y avoir un problème de calcul, et si tu effectues les saisie dans le désordre ,le TB9 ne prend pas en compte les calculs.
Voilà pour ce test.

PierreJean,
il semble que ton fichier est presque OK, si on effectue la saisie dans un ordre logique, (réf, désig,qte, pu,r )par contre si on prend dans n'importe quel ordre il y a souci. Ex: On saisie tout en ordre , jusqu'à là c'est Ok, ensuite on se rend compte que l'on a fait mal tapé dans la case remise donc on rectifie, msgbox apparaît car c'est sur événement change à la limte c'est pas grave si on ne solutionne pas ce problème, donc on laisse le TB R% vide, on clique ensuite sur le bouton + et là Paff bogue idem pour TB7 PU si c'est dans le désorde.
Par contre TB6 QTE même si c'est dans le désorde même si on le laisse vide , ça laisse passer à savoir qu'il ne faut pas laisser passer.
Voilà pour ce test,Merci mille fois à vous deux ,à vous tous sans ce forum on n'y arrive pas seul .
Au plaisir de vous lire Gix.
 
Dernière édition:

Gix

XLDnaute Occasionnel
Re : Calcul avec TextBox

Re:
C'est encore moi le casse pied :D
Cherchez plus, je crois que j'ai trouve avec vos deux fichiers réunis,je pense avoir la solution je vous tiens au courant un peu plus tard dans la soirée je vais essayer de me débrouiller seul et me tester de voir si je suis capable de mettre mes lumières en route
A ce soir Gix.
 

Bebere

XLDnaute Barbatruc
Re : Calcul avec TextBox

re
bonjour Gix
oui Pierre-Jean comme tu n'a pas l'air d'accord(lol)
j'ai refait des test comme c'était avant et pas d'erreur

si somme=225,56 ,225,56*0.196 donnait erreur(dans d'autres fichiers aussi)
et maintenant c'est ok

pour moi ?

à bientôt
 

Gix

XLDnaute Occasionnel
Re : Calcul avec TextBox

Bonsoir à tous,

Bébère , Pierre Jean :) je suis très contenet car je suis arrivé à mettre en place exactement ce que j'ai voulu depuis le départ.
En effet grâce à vos fichiers joins j'ai eu une idée et ça fonctionne, vous pouvez saisir dans l'ordre ou désordre , même avec 0 remise ça marche :rolleyes:
Vous verrez dans le fichier joint les modifs et si vous avez des suggestions je suis toujours preneur.
Merci de votre aide mes amis d' XLD et à bientôt
Bonne fin de soirée Gix.
 

Pièces jointes

  • TBox_Resultat_v2.zip
    25.7 KB · Affichages: 68

Discussions similaires

Réponses
7
Affichages
444

Statistiques des forums

Discussions
312 685
Messages
2 090 939
Membres
104 703
dernier inscrit
romla937