avyrex1926
Messages postés360Date d'inscriptiondimanche 3 décembre 2006StatutMembreDernière intervention 3 janvier 2012
-
13 janv. 2007 à 22:27
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 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
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 13 janv. 2007 à 22:37
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
avyrex1926
Messages postés360Date d'inscriptiondimanche 3 décembre 2006StatutMembreDernière intervention 3 janvier 20123 13 janv. 2007 à 22:52
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.
avyrex1926
Messages postés360Date d'inscriptiondimanche 3 décembre 2006StatutMembreDernière intervention 3 janvier 20123 13 janv. 2007 à 23:10
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
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 14 janv. 2007 à 15:22
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"
<!--
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 14 janv. 2007 à 15:38
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"
<!--