Valeur textbox si unautre TextBox est vide [Résolu]

Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Dernière intervention
3 janvier 2012
- - Dernière réponse : mortalino
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
- 14 janv. 2007 à 15:38
Bonjour,

Je veux calculer plusieurs textBox. Par contre si le testbox 1 et 2 sont vides, ça me donne un erreur. Je voudrais que sil n'y a rien dans le textbox 1 et 2, l'orsque je clique sur addition, que le curseur revienne au testbox 1.

Voici mon code:

Private Sub CommandButton2_Click()
'Addition de tous les montants avant taxe = sous-total
TextBox25.Value = CStr(CDec(TextBox16.Value * TextBox15.Value) + CDec(TextBox18.Value * TextBox17.Value) + CDec(TextBox20.Value * TextBox19.Value) + CDec(TextBox22.Value * TextBox21.Value) + CDec(TextBox24.Value * TextBox23.Value))
'Calcul de la tps
TextBox26.Value = CStr(CDec(TextBox25.Value) * ((TextBox1.Value) / 100))
'Calcul de la tvq
TextBox27.Value = CStr(CDec(TextBox25.Value) + (TextBox26.Value)) * ((TextBox2.Value) / 100)
'Grand total
TextBox28.Value = CStr(CDec(TextBox25.Value) + CDec(TextBox26.Value) + CDec(TextBox27.Value))
End Sub

Comment faire? 
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
3
Merci
Salut,

oui, je suis resté sur l'objet range au lieu de textbox, désolé. Il faut utiliser SetFocus :
TextBox1.SetFocus

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--

Merci mortalino 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de mortalino
Messages postés
2381
Date d'inscription
jeudi 12 juillet 2001
Dernière intervention
13 février 2015
0
Merci
Bonsoir,
Suffit de faire un test sur tes textboxes avant de faire tes calculs.

if len(textbox25.value)>0 then textbox25.value="0"
.....

++
Commenter la réponse de cs_Willi
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
0
Merci
Re,

pour tout ce qui est TextBox, afin de savoir si c'est nul :
If TextBox1.Text vbNullString And TextBox2.Text vbNullString Then
    TextBox1.Select
Else
    ... tes calculs
End If

Pour infos, je vois que tu fais des calculs pour la TVA, j'ai un snippet, vois (sait-on jamais) si ça peut t'intéresser :

Function
 MontantTTC(ByVal dPrice As Double, Optional dTVA As Double = 19.6, Optional iFloat As Integer = 2) As Double
    MontantTTC = Round(dPrice + dPrice * dTVA / 100, iFloat)
End Function
Function MontantHT(ByVal dPrice As Double, Optional dTVA As Double = 19.6, Optional iFloat As Integer = 2) As Double
    MontantHT = Round(dPrice / (1 + dTVA / 100), iFloat)
End Function

Sub Exemple_Utilisation()
    Debug.Print MontantTTC(100)
    Debug.Print MontantHT(100, 5.5) 'si tu veux autres choses que 19.6%, rajoute le
End Sub

Sub
 Exemple_Utilisation_Avec_TextBox()
    MsgBoxMontantTTC(CDbl(TextBox1.Text))
    MsgBox

MontantHT(CDbl(TextBox1.Text)
+ CDbl(TextBox2.Text)
)

End Sub

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Commenter la réponse de mortalino
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
0
Merci
Salut Willy,

1 secondes, je capitule 

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Commenter la réponse de mortalino
Messages postés
2381
Date d'inscription
jeudi 12 juillet 2001
Dernière intervention
13 février 2015
0
Merci
Salut Mortalino,
Lol c'est parce que j'ai été moins bavard ;)
Commenter la réponse de cs_Willi
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Dernière intervention
3 janvier 2012
0
Merci
Salut mortalino,

Contrairement à la TVA applicable chez vous, nous au Québec, nous avons 2 taxes (Fédérale et Provinciale = TPS (6%) et TVQ (7%)
).
Ma problématique est que la TVQ qui est calculée en second, doit  se calculer après avoir additionner le sous-total et la TPS.

Exemple:
Montant    100.00

TPS              6.00
TVQ             7.95

Total         113.95
Commenter la réponse de avyrex1926
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Dernière intervention
3 janvier 2012
0
Merci
re-bonjour,

j'ai mis ce code:
Private Sub CommandButton2_Click()If TextBox1.Text vbNullString And TextBox2.Text vbNullString Then
TextBox1 .Select
Else
    'Addition de tous les montants avant taxe = sous-total
TextBox25.Value = CStr(CDec(TextBox16.Value * TextBox15.Value) + CDec(TextBox18.Value * TextBox17.Value) + CDec(TextBox20.Value * TextBox19.Value) + CDec(TextBox22.Value * TextBox21.Value) + CDec(TextBox24.Value * TextBox23.Value))
'Calcul de la tps
TextBox26.Value = CStr(CDec(TextBox25.Value) * ((TextBox1.Value) / 100))
'Calcul de la tvq
TextBox27.Value = CStr(CDec(TextBox25.Value) + (TextBox26.Value)) * ((TextBox2.Value) / 100)
'Grand total
TextBox28.Value = CStr(CDec(TextBox25.Value) + CDec(TextBox26.Value) + CDec(TextBox27.Value))
End If
End Sub

parcontre il me donne un erreur sur:

TextBox1.Select
Commenter la réponse de avyrex1926
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Dernière intervention
3 janvier 2012
0
Merci
Merci,

 il ny a plus d'erreur et ça fonctionne, parcontre le curseur ne revient pas dans le textbox1 pour ajouter les %

.
Commenter la réponse de avyrex1926
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Dernière intervention
3 janvier 2012
0
Merci
Non je m'excuse, le problème est que j'avais oublié d'enllever le signe '
avant le code.

Désolé, tous fonctionne.  Merci 
Commenter la réponse de avyrex1926
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
0
Merci
Que veux-tu faire exactement, une fois que le contrôle à le focus ?
Pour infos, si tu souhaites placer le curseur à la fin de la valeur saisie dans un textbox, il faut faire ceci :
TextBox1.SelStart = Len(TextBox1.Text)

Et si tu veux rajouter le sigle %, il faut faire ceci :
TextBox1.Text = TextBox1.Text & "%"

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Commenter la réponse de mortalino
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
0
Merci
coucou, Mortalino,

le fait qu'avyrex a écrit plus haut :
TextBox1.Value (parmi d'autres)...
donne à penser qu'il travaille sous VBA et pas VB...

Si c'est bien celà : ce n'est pas toi qui m'a dit ailleurs que SetFocus n'était pas connu sous VBA ?

(n'y voir que de l'amitié et aucune forme d'ironie, s'il te plait... car il n'y en a pas...)
Commenter la réponse de jmfmarques
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
0
Merci
Salut jmfmarques,

aucun problème
En fait, la méthode (ou procédure) SetFocus existe pour les contrôle en VBA, malheureusement, ce sont les évènements LostFocus et GotFocus des contrôles qui viennent à manquer.

Concernant le .Value, c'est effectivement typique à VBA, mais .Value et .Text c'est pareil pour un contrôle.
Là où ça diffère (quelque fois, je n'arrive pas à le reproduire, c'est peut-être qu'avec Office 2000), c'est pour une cellule : admettons que dans A1, tu aies 1 formule, MsgBox Range("A1").Text te retournera la valeur affichée, alors que MsgBox Range("A1").Value te retournera la formule

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Commenter la réponse de mortalino

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.