Problème Valeur textbox [VBA Excel 2007]
Résolu/Fermé
Gornarf
Messages postés
121
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
15 mai 2014
-
12 août 2011 à 09:28
Gornarf Messages postés 121 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 15 mai 2014 - 12 août 2011 à 12:22
Gornarf Messages postés 121 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 15 mai 2014 - 12 août 2011 à 12:22
A voir également:
- Vba textbox value
- Find vba - Astuces et Solutions
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
6 réponses
Gornarf
Messages postés
121
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
15 mai 2014
3
12 août 2011 à 12:22
12 août 2011 à 12:22
Bon
Après moultes essai, recherches et réflexions il s'avère que j'ai trouvé la solution à mon problème, tout seul comme un grand.
Ce n'est peut être pas la solution la plus court d'un point de vue "encodage" mais elle peut s'appliquer dans mon cas.
Etant donné qu'en utilisant Cdbl lorsqu'un champ est vide ca génère une erreur, j'ai fait en sorte que, lorsqu'un champ est vide (étant donné que je fais des calculs sur bases d'infos encodées) ce champ (txtbox) est égal à zéro.
La méthode qui m'est venue à l'esprit est la suivante:
[/code] Private Sub CommandButton18_Click()
If TextBox41.Value = "" And TextBox42.Value = "" And TextBox43.Value = "" And TextBox44.Value = "" And TextBox45.Value = "" And TextBox46.Value = "" And TextBox47.Value = "" And TextBox48.Value = "" Then
TextBox41.Value = ""
TextBox42.Value = ""
TextBox43.Value = ""
TextBox44.Value = ""
TextBox45.Value = ""
TextBox46.Value = ""
TextBox47.Value = ""
TextBox48.Value = ""
TextBox49.Value = ""
TextBox8.Value = ""
MsgBox "veuillez remplir au moins un champ ou indiquer que ce poste à une valeur totale nulle!", vbOKOnly + vbCritical, "ERREUR"
Exit Sub
End If
If TextBox41 = "" Then
TextBox41 = "0"
End If
If TextBox42 = "" Then
TextBox42 = "0"
End If
If TextBox43 = "" Then
TextBox43 = "0"
End If
If TextBox44 = "" Then
TextBox44 = "0"
End If
If TextBox45 = "" Then
TextBox45 = "0"
End If
If TextBox46 = "" Then
TextBox46 = "0"
End If
If TextBox47 = "" Then
TextBox47 = "0"
End If
If TextBox48 = "" Then
TextBox48 = "0"
End If
TextBox49.Value = CDbl(TextBox41.Value) + CDbl(TextBox42.Value) + CDbl(TextBox43.Value) + CDbl(TextBox44.Value) + CDbl(TextBox45.Value) + CDbl(TextBox46.Value) + CDbl(TextBox47.Value) + CDbl(TextBox48.Value)
TextBox8 = TextBox49.Value
End Sub [/code]
Voila. si quelqu'un connait une manière plus rapide de faire je suis néanmoins preneur, si d'autres sont intéressés par la solution elle est a votre disposition.
Merci à toi Chossette pour avoir essayé tant bien que mal de m'aider ;-)
Après moultes essai, recherches et réflexions il s'avère que j'ai trouvé la solution à mon problème, tout seul comme un grand.
Ce n'est peut être pas la solution la plus court d'un point de vue "encodage" mais elle peut s'appliquer dans mon cas.
Etant donné qu'en utilisant Cdbl lorsqu'un champ est vide ca génère une erreur, j'ai fait en sorte que, lorsqu'un champ est vide (étant donné que je fais des calculs sur bases d'infos encodées) ce champ (txtbox) est égal à zéro.
La méthode qui m'est venue à l'esprit est la suivante:
[/code] Private Sub CommandButton18_Click()
If TextBox41.Value = "" And TextBox42.Value = "" And TextBox43.Value = "" And TextBox44.Value = "" And TextBox45.Value = "" And TextBox46.Value = "" And TextBox47.Value = "" And TextBox48.Value = "" Then
TextBox41.Value = ""
TextBox42.Value = ""
TextBox43.Value = ""
TextBox44.Value = ""
TextBox45.Value = ""
TextBox46.Value = ""
TextBox47.Value = ""
TextBox48.Value = ""
TextBox49.Value = ""
TextBox8.Value = ""
MsgBox "veuillez remplir au moins un champ ou indiquer que ce poste à une valeur totale nulle!", vbOKOnly + vbCritical, "ERREUR"
Exit Sub
End If
If TextBox41 = "" Then
TextBox41 = "0"
End If
If TextBox42 = "" Then
TextBox42 = "0"
End If
If TextBox43 = "" Then
TextBox43 = "0"
End If
If TextBox44 = "" Then
TextBox44 = "0"
End If
If TextBox45 = "" Then
TextBox45 = "0"
End If
If TextBox46 = "" Then
TextBox46 = "0"
End If
If TextBox47 = "" Then
TextBox47 = "0"
End If
If TextBox48 = "" Then
TextBox48 = "0"
End If
TextBox49.Value = CDbl(TextBox41.Value) + CDbl(TextBox42.Value) + CDbl(TextBox43.Value) + CDbl(TextBox44.Value) + CDbl(TextBox45.Value) + CDbl(TextBox46.Value) + CDbl(TextBox47.Value) + CDbl(TextBox48.Value)
TextBox8 = TextBox49.Value
End Sub [/code]
Voila. si quelqu'un connait une manière plus rapide de faire je suis néanmoins preneur, si d'autres sont intéressés par la solution elle est a votre disposition.
Merci à toi Chossette pour avoir essayé tant bien que mal de m'aider ;-)
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
12 août 2011 à 09:31
12 août 2011 à 09:31
Bonjour,
je n'ai jamais trop utilisé les additions de TextBox, mais n'est-ce pas le Val(TextBox.Value) qui te transforme ta valeur en entier ? Pourquoi ne pas mettre directement TextBox41.Value + ... + TextBox48.Value ?
Cordialement.
je n'ai jamais trop utilisé les additions de TextBox, mais n'est-ce pas le Val(TextBox.Value) qui te transforme ta valeur en entier ? Pourquoi ne pas mettre directement TextBox41.Value + ... + TextBox48.Value ?
Cordialement.
Gornarf
Messages postés
121
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
15 mai 2014
3
12 août 2011 à 09:35
12 août 2011 à 09:35
Coucou Chossette,
je pense avoir essayé, lorsque je mets ca la réponse dans la textbox49 est TextBox41.Value + ... + TextBox48.Value... mais je retest et te dis quoi.
Ce qui est illogique concernant le résultat de cette opération c'est que normalement pour avoir une réponse alphabétique il aurait fallu mettre des " " en balise...
je pense avoir essayé, lorsque je mets ca la réponse dans la textbox49 est TextBox41.Value + ... + TextBox48.Value... mais je retest et te dis quoi.
Ce qui est illogique concernant le résultat de cette opération c'est que normalement pour avoir une réponse alphabétique il aurait fallu mettre des " " en balise...
Gornarf
Messages postés
121
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
15 mai 2014
3
12 août 2011 à 09:39
12 août 2011 à 09:39
Voila, je me souviens du pourquoi je ne faisais pas de la sorte:
si je dis:
Textbox49.value = textbox41.value +.....+ textbox48.value
En admettant que je mette 50 dans la TB41 et 50, 50 dans la TB42, le résultat du calcul sera : 5050,50
Il met les données bout à bout plutot que de les additionner
J'ai également essayé avec cdBl(textbox41)+cdbl....+cdbl(Textbox48) mais ca me générait une erreur 13 impossible a débboger
si je dis:
Textbox49.value = textbox41.value +.....+ textbox48.value
En admettant que je mette 50 dans la TB41 et 50, 50 dans la TB42, le résultat du calcul sera : 5050,50
Il met les données bout à bout plutot que de les additionner
J'ai également essayé avec cdBl(textbox41)+cdbl....+cdbl(Textbox48) mais ca me générait une erreur 13 impossible a débboger
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
12 août 2011 à 10:00
12 août 2011 à 10:00
Ah oui effectivement, le + utilisé comme ça équivaut au symbole de concaténation....
Quel boulet je fais :)
Quel boulet je fais :)
Gornarf
Messages postés
121
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
15 mai 2014
3
12 août 2011 à 10:05
12 août 2011 à 10:05
Pas d'autres idées?
si j'utilise Cint il va me mettre que des entier, Cdbl générait un bug, Val me met un résultat entier et pourtant mes TB sont configurées pour afficher un résultat avec 2chiffres apres ","
si j'utilise Cint il va me mettre que des entier, Cdbl générait un bug, Val me met un résultat entier et pourtant mes TB sont configurées pour afficher un résultat avec 2chiffres apres ","
Gornarf
Messages postés
121
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
15 mai 2014
3
12 août 2011 à 10:08
12 août 2011 à 10:08
Le probléme exact avec Cdbl c'est que si mes TB sont vide, valeur = "" et donc il refuse le calcul car il ne sait pas additionner unchiffre + "" +"" +...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Gornarf
Messages postés
121
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
15 mai 2014
3
12 août 2011 à 10:20
12 août 2011 à 10:20
Résumé:
Cdbl: bug car ne veux pas additionner des champs vides
Cint: idem
textbox + textbox: concaténation
val(textbox.value)+val(textbox.value): Ne me donne pas les virgules
val(textbox)+val(textbox): Ne me donne pas les virgules
:'(
Cdbl: bug car ne veux pas additionner des champs vides
Cint: idem
textbox + textbox: concaténation
val(textbox.value)+val(textbox.value): Ne me donne pas les virgules
val(textbox)+val(textbox): Ne me donne pas les virgules
:'(
Gornarf
Messages postés
121
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
15 mai 2014
3
12 août 2011 à 11:02
12 août 2011 à 11:02
help please :s