Erreur du à l'effacement du contenu des textbox

batman511 Messages postés 9 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 2 juin 2011 - 18 mai 2011 à 19:43
batman511 Messages postés 9 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 2 juin 2011 - 19 mai 2011 à 10:15
Bonjour;

Mon probleme survient au moment ou j'utilise le "button commande 4" aux quels je luis demande d'efacer le contenus de tous mes textbox afin de pouvoir recommancer un nouveau calcul.
Hors un de mes textbox effectue une division, bien sur comprend que l'on ne peut pas faire division par une celule vierge de tous contenu.
j'aimerais effacer tous en ne tenant pas compte de cette division.
j'ai peut trouver une alternative en remplacent la ligne:

If TypeName(ctl) "TextBox" Then ctl " "

par:

If TypeName(ctl) "TextBox" Then ctl "0"

mais cela remplis tout mes textbox avec la valeur "0" hors je voudrais qu'il reste vierge de toutes valeur avant de recommencer un nouveaux calcul.

Pouvez-vous m'aider?

ci-dessous le code complet de ma page de calcul.


Option Explicit

Private Sub List1_Click()

End Sub

Private Sub Command1_Click()
Text1.Text = Text28.Text
Text17.Text = Text3.Text
Text16.Text = Text32.Text
Text25.Text = Text31.Text
Text15.Text = Text30.Text
Text24.Text = Text3.Text
Text7.Text = Text27.Text
Text19.Text = Text29.Text
Text21.Text = Text33.Text
Text20 = Round((2 * (Val(Text3.Text) - Val(Text26.Text) - Val(Text26.Text) + Val(Text31.Text) - Val(Text26.Text) - Val(Text26.Text))) + 20.5 * (Val(Text29.Text) * 0.1), 0.5)
Text23 = Val(Text31.Text) - (2 * Val(Text26.Text))
Text23 = Val(Text31.Text) - (2 * Val(Text26.Text))
If (Val(Text33.Text) <> 0) Then Text18 = Val(Text30.Text) / Val(Text33.Text)
Text2 = Val(Text30.Text) + (2 * (50 * (Val(Text28.Text) * 0.1)))
Text22 = Val(Text3.Text) - (2 * Val(Text26.Text))
Text9.Text = Text2.Text
Text13 = 50 * (Val(Text27.Text) * 0.1)
Text11 = 50 * (Val(Text27.Text) * 0.1)
Text12 = Val(Text32.Text) * 1.5
Text14 = Val(Text32.Text) * 1.5
Text10 = Val(Text15.Text) - (2 * (Val(Text32.Text) + Val(Text26.Text)))
Text6 = Val(Text11.Text) + Val(Text13.Text) + Val(Text14.Text) + Val(Text10.Text) + Val(Text12.Text)

End Sub

Private Sub Command2_Click()
demarage.Show

End Sub

Private Sub Command3_Click()
End

End Sub

Private Sub command6_Click()
Sauver.Hide
End Sub

Private Sub Command5_Click()
Application.Dialogs(xlDialogPrint).Show
End Sub

Private Sub Command4_Click()
'effacer le contenu des textbox
Dim ctl As Control
For Each ctl In Me.Controls
If TypeName(ctl) "TextBox" Then ctl " "
Next ctl
End Sub

Private Sub Text15_Change()
Text15 = Text30
Text15 = CDbl(Text15.Text)

End Sub

Private Sub Text17_Change()
Text17 = Text3
Text17 = CDbl(Text17.Text)
End Sub

Private Sub Text23_Change()
Text23 = CDbl(Text23.Text)

End Sub

Private Sub Text24_Change()
Text24 = Text3
Text24 = CDbl(Text24.Text)
End Sub

Private Sub Text25_Change()
Text25 = Text31
Text25 = CDbl(Text25.Text)
End Sub
Private Sub Text26_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
' Touche Entrée utilisée
KeyAscii = 0 ' annule touche pour éviter le Beep
Text27.SetFocus ' passe au controle suivant
End If

End Sub

Private Sub Text27_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
' Touche Entrée utilisée
KeyAscii = 0 ' annule touche pour éviter le Beep
Text28.SetFocus ' passe au controle suivant
End If

End Sub
Private Sub Text28_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
' Touche Entrée utilisée
KeyAscii = 0 ' annule touche pour éviter le Beep
Text29.SetFocus ' passe au controle suivant
End If

End Sub

Private Sub Text29_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
' Touche Entrée utilisée
KeyAscii = 0 ' annule touche pour éviter le Beep
Text33.SetFocus ' passe au controle suivant
End If

End Sub

Private Sub Text3_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
' Touche Entrée utilisée
KeyAscii = 0 ' annule touche pour éviter le Beep
Text32.SetFocus ' passe au controle suivant
End If


End Sub
Private Sub Text30_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
' Touche Entrée utilisée
KeyAscii = 0 ' annule touche pour éviter le Beep
Text26.SetFocus ' passe au controle suivant
End If

End Sub
Private Sub Text31_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
' Touche Entrée utilisée
KeyAscii = 0 ' annule touche pour éviter le Beep
Text30.SetFocus ' passe au controle suivant
End If

End Sub

Private Sub Text32_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
' Touche Entrée utilisée
KeyAscii = 0 ' annule touche pour éviter le Beep
Text31.SetFocus ' passe au controle suivant
End If

End Sub

Private Sub Text33_Change()
Text33 = CDbl(Text33.Text)
End Sub

6 réponses

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
18 mai 2011 à 21:11
Salut
tu n'as pas un code plus long
quand tu postes un code utilise la coloration
syntaxique au dessus 3ième icon de droite


mais cela remplis tout mes textbox avec la valeur "0" hors je voudrais qu'il reste vierge de toutes valeur avant de recommencer un nouveaux calcul.


avec quelle valeur vas tu faire les calculs si
les textbox sont vides

donne des noms significatifs à tes controls
text1 text2 text3 command1 ne veut rien dire
le jour où tu devras relire le code
0
Profil bloqué
18 mai 2011 à 21:35
Salut
si tu ne mélangeais pas les variables chaines de caractères ( contenu d'un Textbox par exemple) et les variables numériques tu n'aurais pas ce problème.
On fait les calculs avec des variables numériques et on affiche les résultats en Textbox avec des variables chaines de caractères.
De plus comme déjà dit donne des noms significatifs à tes contrôles.
Si tu as un projet de plusieurs feuilles avec environ 3000 lignes de code tu ne t'y retrouveras plus sans noms significatifs

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
0
batman511 Messages postés 9 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 2 juin 2011
19 mai 2011 à 08:43
Bonjour à tous,

Desolé pour la longueur du code et merci pour les info.

"Shayw"

Pour repondre à t'a question en fait le calcul est deja realiser avant car j'utiles une commande "calculer" qui effectue toutes les operations ( commande 1).

Je voudrais juste pouvoir tous reinitialiser tous apres le premiers calcule pour pouvoir recommence avec d'autre valeurs.

jerôme.
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
19 mai 2011 à 09:12
Salut

Encore moins compris
le calcul est deja realiser avant car j'utiles une commande "calculer"


à quoi sert la command4 alors ?
J'ai l'impression que tu as fait compliquer
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
19 mai 2011 à 10:12
ah oui le click du command4 efface tous les
textbox

Tu utilises 30 textbox ?
c'est la jungle
que doit faire ton application ?
je suis sur que tu peux simplifier
0
batman511 Messages postés 9 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 2 juin 2011
19 mai 2011 à 10:15
J'ai effectivement fait peut-etre un peu compliquer je suis le premier à le reconnaitre!

Le probleme ces que si je veux entré de nouvelle valeur dans mes textbox qui servent de base pour les calcules je suis obligé de metre, soit en surbrillance le nombres existant pour pouvoir retaper le nouveaux par dessus ou-bien de faire "suppr" au clavier ( ce n'est pas extraordinaire, bien-sur ,mais cela permet de gagner un peut de temps et ameliore un peut la presentation en utilisant le button "reinitialise" ) d'ou mon probleme de division par un textbox vide.

jerôme
0
Rejoignez-nous