Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
| Les deux trucs suivants sont-ils équivalents ?
| Format(TextBox41.Value / TextBox42.Value, "0.0000")
| Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
| Les deux trucs suivants sont-ils équivalents ?
| Format(TextBox41.Value / TextBox42.Value, "0.0000")
| Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
| Les deux trucs suivants sont-ils équivalents ?
| Format(TextBox41.Value / TextBox42.Value, "0.0000")
| Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu est
numérique ?
Ta proposition :Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la réponse
utilisera la virugle et non le point... cela peut confondre l'usager. ;-))
De plus, si tu devrais utiliser le contenu du texbox3 qui vient de recevoir
le résultat de la première opération... comme il contient une virgule comme
séparateur décimale...faudrait prévoir le coup dans tes opérations
subséquentes !!! Si c'est une virgule qui est utilisé dans le textbox comme
séparateur décimale, la fonction Val() laisse tomber la section décimale de
ton chiffre contenu dans le textbox. Pourquoi utiliser la fonction "Format()"
??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration de
Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" a écrit dans le message de news:
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu est
numérique ?
Ta proposition :
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la réponse
utilisera la virugle et non le point... cela peut confondre l'usager. ;-))
De plus, si tu devrais utiliser le contenu du texbox3 qui vient de recevoir
le résultat de la première opération... comme il contient une virgule comme
séparateur décimale...faudrait prévoir le coup dans tes opérations
subséquentes !!! Si c'est une virgule qui est utilisé dans le textbox comme
séparateur décimale, la fonction Val() laisse tomber la section décimale de
ton chiffre contenu dans le textbox. Pourquoi utiliser la fonction "Format()"
??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration de
Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
mn.45727d6cad9faa32.62733@frite.fr...
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :
Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu est
numérique ?
Ta proposition :Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la réponse
utilisera la virugle et non le point... cela peut confondre l'usager. ;-))
De plus, si tu devrais utiliser le contenu du texbox3 qui vient de recevoir
le résultat de la première opération... comme il contient une virgule comme
séparateur décimale...faudrait prévoir le coup dans tes opérations
subséquentes !!! Si c'est une virgule qui est utilisé dans le textbox comme
séparateur décimale, la fonction Val() laisse tomber la section décimale de
ton chiffre contenu dans le textbox. Pourquoi utiliser la fonction "Format()"
??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration de
Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" a écrit dans le message de news:
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
Bonjour,
Effectivement dans un autre contexte c'est une erreur, mais en l'occurence et
selon ce que j'ai entendu de la commande , le résultat est rigoureusement
exact.Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
J'en ai une , faire les calculs dans la feuille en utilisant tous la même
convention de saisie donc pour les décimaux avec une virgule.
Voilà sans doute la cause de ce qui peut génèrer une erreur, sachant que vba
utilise le point comme séparateur, j'ai envisagé la réponse à la question
strictement comme elle était posée:
Pourquoi Format, parceque le Monsieur il a demandé 4 chiffres seulement après
la virgule et que c'est une façon de l'obtenir.
Pourquoi Val parceque le textbox contient
du texte comme son nom l'indique et qu'il n'y a pas une virgule mais
Pourquoi Csng, parceque j'ai pris l'habitude de convertir les textbox dans un
format qui convient lorsqu'ils doivent intervenir dans un calcul.
(ici c'est sans ddoute redondant j'en conviens.
Merci quand même de nous donner la formule qui fonctionne dans tous les cas
de figure, parceque dans le principe de gèrer tous cas d'erreur possibles je
suis bien d'accord.
Cdlt.
lSteph
MichDenis a utilisé son clavier pour écrire :on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu
est
numérique ?
Ta proposition :Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la
réponse
utilisera la virugle et non le point... cela peut confondre l'usager.
;-))
De plus, si tu devrais utiliser le contenu du texbox3 qui vient de recevoir
le résultat de la première opération... comme il contient une virgule comme
séparateur décimale...faudrait prévoir le coup dans tes opérations
subséquentes !!! Si c'est une virgule qui est utilisé dans le textbox comme
séparateur décimale, la fonction Val() laisse tomber la section décimale de
ton chiffre contenu dans le textbox. Pourquoi utiliser la fonction
"Format()" ??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration
de Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" a écrit dans le message de news:
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
Bonjour,
Effectivement dans un autre contexte c'est une erreur, mais en l'occurence et
selon ce que j'ai entendu de la commande , le résultat est rigoureusement
exact.
Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
J'en ai une , faire les calculs dans la feuille en utilisant tous la même
convention de saisie donc pour les décimaux avec une virgule.
Voilà sans doute la cause de ce qui peut génèrer une erreur, sachant que vba
utilise le point comme séparateur, j'ai envisagé la réponse à la question
strictement comme elle était posée:
Pourquoi Format, parceque le Monsieur il a demandé 4 chiffres seulement après
la virgule et que c'est une façon de l'obtenir.
Pourquoi Val parceque le textbox contient
du texte comme son nom l'indique et qu'il n'y a pas une virgule mais
Pourquoi Csng, parceque j'ai pris l'habitude de convertir les textbox dans un
format qui convient lorsqu'ils doivent intervenir dans un calcul.
(ici c'est sans ddoute redondant j'en conviens.
Merci quand même de nous donner la formule qui fonctionne dans tous les cas
de figure, parceque dans le principe de gèrer tous cas d'erreur possibles je
suis bien d'accord.
Cdlt.
lSteph
MichDenis a utilisé son clavier pour écrire :
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu
est
numérique ?
Ta proposition :
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la
réponse
utilisera la virugle et non le point... cela peut confondre l'usager.
;-))
De plus, si tu devrais utiliser le contenu du texbox3 qui vient de recevoir
le résultat de la première opération... comme il contient une virgule comme
séparateur décimale...faudrait prévoir le coup dans tes opérations
subséquentes !!! Si c'est une virgule qui est utilisé dans le textbox comme
séparateur décimale, la fonction Val() laisse tomber la section décimale de
ton chiffre contenu dans le textbox. Pourquoi utiliser la fonction
"Format()" ??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration
de Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
mn.45727d6cad9faa32.62733@frite.fr...
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :
Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
Bonjour,
Effectivement dans un autre contexte c'est une erreur, mais en l'occurence et
selon ce que j'ai entendu de la commande , le résultat est rigoureusement
exact.Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
J'en ai une , faire les calculs dans la feuille en utilisant tous la même
convention de saisie donc pour les décimaux avec une virgule.
Voilà sans doute la cause de ce qui peut génèrer une erreur, sachant que vba
utilise le point comme séparateur, j'ai envisagé la réponse à la question
strictement comme elle était posée:
Pourquoi Format, parceque le Monsieur il a demandé 4 chiffres seulement après
la virgule et que c'est une façon de l'obtenir.
Pourquoi Val parceque le textbox contient
du texte comme son nom l'indique et qu'il n'y a pas une virgule mais
Pourquoi Csng, parceque j'ai pris l'habitude de convertir les textbox dans un
format qui convient lorsqu'ils doivent intervenir dans un calcul.
(ici c'est sans ddoute redondant j'en conviens.
Merci quand même de nous donner la formule qui fonctionne dans tous les cas
de figure, parceque dans le principe de gèrer tous cas d'erreur possibles je
suis bien d'accord.
Cdlt.
lSteph
MichDenis a utilisé son clavier pour écrire :on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu
est
numérique ?
Ta proposition :Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la
réponse
utilisera la virugle et non le point... cela peut confondre l'usager.
;-))
De plus, si tu devrais utiliser le contenu du texbox3 qui vient de recevoir
le résultat de la première opération... comme il contient une virgule comme
séparateur décimale...faudrait prévoir le coup dans tes opérations
subséquentes !!! Si c'est une virgule qui est utilisé dans le textbox comme
séparateur décimale, la fonction Val() laisse tomber la section décimale de
ton chiffre contenu dans le textbox. Pourquoi utiliser la fonction
"Format()" ??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration
de Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" a écrit dans le message de news:
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu est
numérique ?
Ta proposition :Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la réponse
utilisera la virugle et non le point... cela peut confondre l'usager. ;-))
De plus, si tu devrais utiliser le contenu du texbox3 qui vient de recevoir
le résultat de la première opération... comme il contient une virgule comme
séparateur décimale...faudrait prévoir le coup dans tes opérations
subséquentes !!! Si c'est une virgule qui est utilisé dans le textbox comme
séparateur décimale, la fonction Val() laisse tomber la section décimale de
ton chiffre contenu dans le textbox. Pourquoi utiliser la fonction "Format()"
??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration de
Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" a écrit dans le message de news:
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu est
numérique ?
Ta proposition :
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la réponse
utilisera la virugle et non le point... cela peut confondre l'usager. ;-))
De plus, si tu devrais utiliser le contenu du texbox3 qui vient de recevoir
le résultat de la première opération... comme il contient une virgule comme
séparateur décimale...faudrait prévoir le coup dans tes opérations
subséquentes !!! Si c'est une virgule qui est utilisé dans le textbox comme
séparateur décimale, la fonction Val() laisse tomber la section décimale de
ton chiffre contenu dans le textbox. Pourquoi utiliser la fonction "Format()"
??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration de
Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
mn.45727d6cad9faa32.62733@frite.fr...
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :
Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu est
numérique ?
Ta proposition :Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la réponse
utilisera la virugle et non le point... cela peut confondre l'usager. ;-))
De plus, si tu devrais utiliser le contenu du texbox3 qui vient de recevoir
le résultat de la première opération... comme il contient une virgule comme
séparateur décimale...faudrait prévoir le coup dans tes opérations
subséquentes !!! Si c'est une virgule qui est utilisé dans le textbox comme
séparateur décimale, la fonction Val() laisse tomber la section décimale de
ton chiffre contenu dans le textbox. Pourquoi utiliser la fonction "Format()"
??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration de
Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" a écrit dans le message de news:
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
problématique des Textbox
supposait que tu avais
L'essentiel de mon propos est contenu dans mon message précédent.
C'est possible qu'il ne soit pas évident à saisir ou que l'explication
soit floue ....Ce n'était pas une critique formulée à l'endroit de ta
proposition ou de celle de Serge mais plutôt un énoncé sur la
problématique des Textbox, des opérations mathématiques et
de l'opérateur décimale. Ceci dit, tu fais comme tu veux.
En vba, on retrouve la même problématique avec les dates.
La méthode de passer une date au code est importante afin
que le code ne soit pas lié au format "Date" du panneau de
configuration de son ordi. Si l'application se trimbale, certains
usagers risquent d'avoir des surprises à moins que tous aient
la même configuration !!!!Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
J'en ai une , faire les calculs dans la feuille en utilisant tous la
même convention de saisie donc pour les décimaux avec une virgule.
Voilà sans doute la cause de ce qui peut génèrer une erreur, sachant
que vba utilise le point comme séparateur, j'ai envisagé la réponse à
la question strictement comme elle était posée:
Pourquoi Format, parceque le Monsieur il a demandé 4 chiffres seulement
après la virgule et que c'est une façon de l'obtenir.
Pourquoi Val parceque le textbox contient (selon ce qu'indiqué) un
point.
Pourquoi Csng, parceque j'ai pris l'habitude de convertir les textbox
dans un format qui convient lorsqu'ils doivent intervenir dans un
calcul.
Merci quand même de nous donner la formule qui fonctionne dans tous les
cas de figure, parceque dans le principe de gèrer tous cas d'erreur
possibles je suis bien d'accord.
Cdlt.
lSteph
MichDenis a utilisé son clavier pour écrire :on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu
est numérique ?
Ta proposition :Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la réponse
utilisera la virugle et non le point... cela peut confondre l'usager.
;-)) De plus, si tu devrais utiliser le contenu du texbox3 qui vient de
recevoir le résultat de la première opération... comme il contient une
virgule comme séparateur décimale...faudrait prévoir le coup dans tes
opérations subséquentes !!! Si c'est une virgule qui est utilisé dans le
textbox comme séparateur décimale, la fonction Val() laisse tomber la
section décimale de ton chiffre contenu dans le textbox. Pourquoi utiliser
la fonction "Format()" ??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration de
Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" a écrit dans le message de news:
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
problématique des Textbox
supposait que tu avais
L'essentiel de mon propos est contenu dans mon message précédent.
C'est possible qu'il ne soit pas évident à saisir ou que l'explication
soit floue ....Ce n'était pas une critique formulée à l'endroit de ta
proposition ou de celle de Serge mais plutôt un énoncé sur la
problématique des Textbox, des opérations mathématiques et
de l'opérateur décimale. Ceci dit, tu fais comme tu veux.
En vba, on retrouve la même problématique avec les dates.
La méthode de passer une date au code est importante afin
que le code ne soit pas lié au format "Date" du panneau de
configuration de son ordi. Si l'application se trimbale, certains
usagers risquent d'avoir des surprises à moins que tous aient
la même configuration !!!!
Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
J'en ai une , faire les calculs dans la feuille en utilisant tous la
même convention de saisie donc pour les décimaux avec une virgule.
Voilà sans doute la cause de ce qui peut génèrer une erreur, sachant
que vba utilise le point comme séparateur, j'ai envisagé la réponse à
la question strictement comme elle était posée:
Pourquoi Format, parceque le Monsieur il a demandé 4 chiffres seulement
après la virgule et que c'est une façon de l'obtenir.
Pourquoi Val parceque le textbox contient (selon ce qu'indiqué) un
point.
Pourquoi Csng, parceque j'ai pris l'habitude de convertir les textbox
dans un format qui convient lorsqu'ils doivent intervenir dans un
calcul.
Merci quand même de nous donner la formule qui fonctionne dans tous les
cas de figure, parceque dans le principe de gèrer tous cas d'erreur
possibles je suis bien d'accord.
Cdlt.
lSteph
MichDenis a utilisé son clavier pour écrire :
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu
est numérique ?
Ta proposition :
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la réponse
utilisera la virugle et non le point... cela peut confondre l'usager.
;-)) De plus, si tu devrais utiliser le contenu du texbox3 qui vient de
recevoir le résultat de la première opération... comme il contient une
virgule comme séparateur décimale...faudrait prévoir le coup dans tes
opérations subséquentes !!! Si c'est une virgule qui est utilisé dans le
textbox comme séparateur décimale, la fonction Val() laisse tomber la
section décimale de ton chiffre contenu dans le textbox. Pourquoi utiliser
la fonction "Format()" ??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration de
Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
mn.45727d6cad9faa32.62733@frite.fr...
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :
Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
problématique des Textbox
supposait que tu avais
L'essentiel de mon propos est contenu dans mon message précédent.
C'est possible qu'il ne soit pas évident à saisir ou que l'explication
soit floue ....Ce n'était pas une critique formulée à l'endroit de ta
proposition ou de celle de Serge mais plutôt un énoncé sur la
problématique des Textbox, des opérations mathématiques et
de l'opérateur décimale. Ceci dit, tu fais comme tu veux.
En vba, on retrouve la même problématique avec les dates.
La méthode de passer une date au code est importante afin
que le code ne soit pas lié au format "Date" du panneau de
configuration de son ordi. Si l'application se trimbale, certains
usagers risquent d'avoir des surprises à moins que tous aient
la même configuration !!!!Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
J'en ai une , faire les calculs dans la feuille en utilisant tous la
même convention de saisie donc pour les décimaux avec une virgule.
Voilà sans doute la cause de ce qui peut génèrer une erreur, sachant
que vba utilise le point comme séparateur, j'ai envisagé la réponse à
la question strictement comme elle était posée:
Pourquoi Format, parceque le Monsieur il a demandé 4 chiffres seulement
après la virgule et que c'est une façon de l'obtenir.
Pourquoi Val parceque le textbox contient (selon ce qu'indiqué) un
point.
Pourquoi Csng, parceque j'ai pris l'habitude de convertir les textbox
dans un format qui convient lorsqu'ils doivent intervenir dans un
calcul.
Merci quand même de nous donner la formule qui fonctionne dans tous les
cas de figure, parceque dans le principe de gèrer tous cas d'erreur
possibles je suis bien d'accord.
Cdlt.
lSteph
MichDenis a utilisé son clavier pour écrire :on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu
est numérique ?
Ta proposition :Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la réponse
utilisera la virugle et non le point... cela peut confondre l'usager.
;-)) De plus, si tu devrais utiliser le contenu du texbox3 qui vient de
recevoir le résultat de la première opération... comme il contient une
virgule comme séparateur décimale...faudrait prévoir le coup dans tes
opérations subséquentes !!! Si c'est une virgule qui est utilisé dans le
textbox comme séparateur décimale, la fonction Val() laisse tomber la
section décimale de ton chiffre contenu dans le textbox. Pourquoi utiliser
la fonction "Format()" ??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration de
Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" a écrit dans le message de news:
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
problématique des Textbox
supposait que tu avais
L'essentiel de mon propos est contenu dans mon message précédent.
C'est possible qu'il ne soit pas évident à saisir ou que l'explication
soit floue ....Ce n'était pas une critique formulée à l'endroit de ta
proposition ou de celle de Serge mais plutôt un énoncé sur la
problématique des Textbox, des opérations mathématiques et
de l'opérateur décimale. Ceci dit, tu fais comme tu veux.
En vba, on retrouve la même problématique avec les dates.
La méthode de passer une date au code est importante afin
que le code ne soit pas lié au format "Date" du panneau de
configuration de son ordi. Si l'application se trimbale, certains
usagers risquent d'avoir des surprises à moins que tous aient
la même configuration !!!!Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
J'en ai une , faire les calculs dans la feuille en utilisant tous la
même convention de saisie donc pour les décimaux avec une virgule.
Voilà sans doute la cause de ce qui peut génèrer une erreur, sachant
que vba utilise le point comme séparateur, j'ai envisagé la réponse à
la question strictement comme elle était posée:
Pourquoi Format, parceque le Monsieur il a demandé 4 chiffres seulement
après la virgule et que c'est une façon de l'obtenir.
Pourquoi Val parceque le textbox contient (selon ce qu'indiqué) un
point.
Pourquoi Csng, parceque j'ai pris l'habitude de convertir les textbox
dans un format qui convient lorsqu'ils doivent intervenir dans un
calcul.
Merci quand même de nous donner la formule qui fonctionne dans tous les
cas de figure, parceque dans le principe de gèrer tous cas d'erreur
possibles je suis bien d'accord.
Cdlt.
lSteph
MichDenis a utilisé son clavier pour écrire :on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu
est numérique ?
Ta proposition :Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la réponse
utilisera la virugle et non le point... cela peut confondre l'usager.
;-)) De plus, si tu devrais utiliser le contenu du texbox3 qui vient de
recevoir le résultat de la première opération... comme il contient une
virgule comme séparateur décimale...faudrait prévoir le coup dans tes
opérations subséquentes !!! Si c'est une virgule qui est utilisé dans le
textbox comme séparateur décimale, la fonction Val() laisse tomber la
section décimale de ton chiffre contenu dans le textbox. Pourquoi utiliser
la fonction "Format()" ??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration de
Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" a écrit dans le message de news:
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
problématique des Textbox
supposait que tu avais
L'essentiel de mon propos est contenu dans mon message précédent.
C'est possible qu'il ne soit pas évident à saisir ou que l'explication
soit floue ....Ce n'était pas une critique formulée à l'endroit de ta
proposition ou de celle de Serge mais plutôt un énoncé sur la
problématique des Textbox, des opérations mathématiques et
de l'opérateur décimale. Ceci dit, tu fais comme tu veux.
En vba, on retrouve la même problématique avec les dates.
La méthode de passer une date au code est importante afin
que le code ne soit pas lié au format "Date" du panneau de
configuration de son ordi. Si l'application se trimbale, certains
usagers risquent d'avoir des surprises à moins que tous aient
la même configuration !!!!
Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
J'en ai une , faire les calculs dans la feuille en utilisant tous la
même convention de saisie donc pour les décimaux avec une virgule.
Voilà sans doute la cause de ce qui peut génèrer une erreur, sachant
que vba utilise le point comme séparateur, j'ai envisagé la réponse à
la question strictement comme elle était posée:
Pourquoi Format, parceque le Monsieur il a demandé 4 chiffres seulement
après la virgule et que c'est une façon de l'obtenir.
Pourquoi Val parceque le textbox contient (selon ce qu'indiqué) un
point.
Pourquoi Csng, parceque j'ai pris l'habitude de convertir les textbox
dans un format qui convient lorsqu'ils doivent intervenir dans un
calcul.
Merci quand même de nous donner la formule qui fonctionne dans tous les
cas de figure, parceque dans le principe de gèrer tous cas d'erreur
possibles je suis bien d'accord.
Cdlt.
lSteph
MichDenis a utilisé son clavier pour écrire :
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu
est numérique ?
Ta proposition :
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la réponse
utilisera la virugle et non le point... cela peut confondre l'usager.
;-)) De plus, si tu devrais utiliser le contenu du texbox3 qui vient de
recevoir le résultat de la première opération... comme il contient une
virgule comme séparateur décimale...faudrait prévoir le coup dans tes
opérations subséquentes !!! Si c'est une virgule qui est utilisé dans le
textbox comme séparateur décimale, la fonction Val() laisse tomber la
section décimale de ton chiffre contenu dans le textbox. Pourquoi utiliser
la fonction "Format()" ??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration de
Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
mn.45727d6cad9faa32.62733@frite.fr...
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :
Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
problématique des Textbox
supposait que tu avais
L'essentiel de mon propos est contenu dans mon message précédent.
C'est possible qu'il ne soit pas évident à saisir ou que l'explication
soit floue ....Ce n'était pas une critique formulée à l'endroit de ta
proposition ou de celle de Serge mais plutôt un énoncé sur la
problématique des Textbox, des opérations mathématiques et
de l'opérateur décimale. Ceci dit, tu fais comme tu veux.
En vba, on retrouve la même problématique avec les dates.
La méthode de passer une date au code est importante afin
que le code ne soit pas lié au format "Date" du panneau de
configuration de son ordi. Si l'application se trimbale, certains
usagers risquent d'avoir des surprises à moins que tous aient
la même configuration !!!!Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
J'en ai une , faire les calculs dans la feuille en utilisant tous la
même convention de saisie donc pour les décimaux avec une virgule.
Voilà sans doute la cause de ce qui peut génèrer une erreur, sachant
que vba utilise le point comme séparateur, j'ai envisagé la réponse à
la question strictement comme elle était posée:
Pourquoi Format, parceque le Monsieur il a demandé 4 chiffres seulement
après la virgule et que c'est une façon de l'obtenir.
Pourquoi Val parceque le textbox contient (selon ce qu'indiqué) un
point.
Pourquoi Csng, parceque j'ai pris l'habitude de convertir les textbox
dans un format qui convient lorsqu'ils doivent intervenir dans un
calcul.
Merci quand même de nous donner la formule qui fonctionne dans tous les
cas de figure, parceque dans le principe de gèrer tous cas d'erreur
possibles je suis bien d'accord.
Cdlt.
lSteph
MichDenis a utilisé son clavier pour écrire :on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu
est numérique ?
Ta proposition :Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la réponse
utilisera la virugle et non le point... cela peut confondre l'usager.
;-)) De plus, si tu devrais utiliser le contenu du texbox3 qui vient de
recevoir le résultat de la première opération... comme il contient une
virgule comme séparateur décimale...faudrait prévoir le coup dans tes
opérations subséquentes !!! Si c'est une virgule qui est utilisé dans le
textbox comme séparateur décimale, la fonction Val() laisse tomber la
section décimale de ton chiffre contenu dans le textbox. Pourquoi utiliser
la fonction "Format()" ??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration de
Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" a écrit dans le message de news:
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
Si tu veux un exemple, il y en a un ici : http://cjoint.com/?mjpbJOljK5
"lSteph" a écrit dans le message de news:
On est bien d'accord sur tout cela, je n'ai peuut-être pas été clair
non plus:
la solution dépend du contexte ou si on ne veut pas compliquer de celui
de la question ,
à moins de prendre le temps de gèrer d'avantage d'hypothèses aussi le
fait que tu évoquesproblématique des Textbox
supposait que tu avais
une solution plus universelle.
Tant pis merci quand même.
@+
lSteph
MichDenis a pensé très fort :L'essentiel de mon propos est contenu dans mon message précédent.
C'est possible qu'il ne soit pas évident à saisir ou que l'explication
soit floue ....Ce n'était pas une critique formulée à l'endroit de ta
proposition ou de celle de Serge mais plutôt un énoncé sur la
problématique des Textbox, des opérations mathématiques et
de l'opérateur décimale. Ceci dit, tu fais comme tu veux.
En vba, on retrouve la même problématique avec les dates.
La méthode de passer une date au code est importante afin
que le code ne soit pas lié au format "Date" du panneau de
configuration de son ordi. Si l'application se trimbale, certains
usagers risquent d'avoir des surprises à moins que tous aient
la même configuration !!!!Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
J'en ai une , faire les calculs dans la feuille en utilisant tous la
même convention de saisie donc pour les décimaux avec une virgule.
Voilà sans doute la cause de ce qui peut génèrer une erreur, sachant
que vba utilise le point comme séparateur, j'ai envisagé la réponse à
la question strictement comme elle était posée:
Pourquoi Format, parceque le Monsieur il a demandé 4 chiffres seulement
après la virgule et que c'est une façon de l'obtenir.
Pourquoi Val parceque le textbox contient (selon ce qu'indiqué) un
point.
Pourquoi Csng, parceque j'ai pris l'habitude de convertir les textbox
dans un format qui convient lorsqu'ils doivent intervenir dans un
calcul.
Merci quand même de nous donner la formule qui fonctionne dans tous les
cas de figure, parceque dans le principe de gèrer tous cas d'erreur
possibles je suis bien d'accord.
Cdlt.
lSteph
MichDenis a utilisé son clavier pour écrire :on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu
est numérique ?
Ta proposition :Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la réponse
utilisera la virugle et non le point... cela peut confondre l'usager.
;-)) De plus, si tu devrais utiliser le contenu du texbox3 qui vient de
recevoir le résultat de la première opération... comme il contient une
virgule comme séparateur décimale...faudrait prévoir le coup dans tes
opérations subséquentes !!! Si c'est une virgule qui est utilisé dans le
textbox comme séparateur décimale, la fonction Val() laisse tomber la
section décimale de ton chiffre contenu dans le textbox. Pourquoi utiliser
la fonction "Format()" ??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration de
Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" a écrit dans le message de news:
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
--
- -
Si tu veux un exemple, il y en a un ici : http://cjoint.com/?mjpbJOljK5
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
mn.4b067d6c8b8e8fcc.62733@frite.fr...
On est bien d'accord sur tout cela, je n'ai peuut-être pas été clair
non plus:
la solution dépend du contexte ou si on ne veut pas compliquer de celui
de la question ,
à moins de prendre le temps de gèrer d'avantage d'hypothèses aussi le
fait que tu évoques
problématique des Textbox
supposait que tu avais
une solution plus universelle.
Tant pis merci quand même.
@+
lSteph
MichDenis a pensé très fort :
L'essentiel de mon propos est contenu dans mon message précédent.
C'est possible qu'il ne soit pas évident à saisir ou que l'explication
soit floue ....Ce n'était pas une critique formulée à l'endroit de ta
proposition ou de celle de Serge mais plutôt un énoncé sur la
problématique des Textbox, des opérations mathématiques et
de l'opérateur décimale. Ceci dit, tu fais comme tu veux.
En vba, on retrouve la même problématique avec les dates.
La méthode de passer une date au code est importante afin
que le code ne soit pas lié au format "Date" du panneau de
configuration de son ordi. Si l'application se trimbale, certains
usagers risquent d'avoir des surprises à moins que tous aient
la même configuration !!!!
Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
J'en ai une , faire les calculs dans la feuille en utilisant tous la
même convention de saisie donc pour les décimaux avec une virgule.
Voilà sans doute la cause de ce qui peut génèrer une erreur, sachant
que vba utilise le point comme séparateur, j'ai envisagé la réponse à
la question strictement comme elle était posée:
Pourquoi Format, parceque le Monsieur il a demandé 4 chiffres seulement
après la virgule et que c'est une façon de l'obtenir.
Pourquoi Val parceque le textbox contient (selon ce qu'indiqué) un
point.
Pourquoi Csng, parceque j'ai pris l'habitude de convertir les textbox
dans un format qui convient lorsqu'ils doivent intervenir dans un
calcul.
Merci quand même de nous donner la formule qui fonctionne dans tous les
cas de figure, parceque dans le principe de gèrer tous cas d'erreur
possibles je suis bien d'accord.
Cdlt.
lSteph
MichDenis a utilisé son clavier pour écrire :
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu
est numérique ?
Ta proposition :
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la réponse
utilisera la virugle et non le point... cela peut confondre l'usager.
;-)) De plus, si tu devrais utiliser le contenu du texbox3 qui vient de
recevoir le résultat de la première opération... comme il contient une
virgule comme séparateur décimale...faudrait prévoir le coup dans tes
opérations subséquentes !!! Si c'est une virgule qui est utilisé dans le
textbox comme séparateur décimale, la fonction Val() laisse tomber la
section décimale de ton chiffre contenu dans le textbox. Pourquoi utiliser
la fonction "Format()" ??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration de
Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
mn.45727d6cad9faa32.62733@frite.fr...
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :
Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
--
- -
Si tu veux un exemple, il y en a un ici : http://cjoint.com/?mjpbJOljK5
"lSteph" a écrit dans le message de news:
On est bien d'accord sur tout cela, je n'ai peuut-être pas été clair
non plus:
la solution dépend du contexte ou si on ne veut pas compliquer de celui
de la question ,
à moins de prendre le temps de gèrer d'avantage d'hypothèses aussi le
fait que tu évoquesproblématique des Textbox
supposait que tu avais
une solution plus universelle.
Tant pis merci quand même.
@+
lSteph
MichDenis a pensé très fort :L'essentiel de mon propos est contenu dans mon message précédent.
C'est possible qu'il ne soit pas évident à saisir ou que l'explication
soit floue ....Ce n'était pas une critique formulée à l'endroit de ta
proposition ou de celle de Serge mais plutôt un énoncé sur la
problématique des Textbox, des opérations mathématiques et
de l'opérateur décimale. Ceci dit, tu fais comme tu veux.
En vba, on retrouve la même problématique avec les dates.
La méthode de passer une date au code est importante afin
que le code ne soit pas lié au format "Date" du panneau de
configuration de son ordi. Si l'application se trimbale, certains
usagers risquent d'avoir des surprises à moins que tous aient
la même configuration !!!!Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
J'en ai une , faire les calculs dans la feuille en utilisant tous la
même convention de saisie donc pour les décimaux avec une virgule.
Voilà sans doute la cause de ce qui peut génèrer une erreur, sachant
que vba utilise le point comme séparateur, j'ai envisagé la réponse à
la question strictement comme elle était posée:
Pourquoi Format, parceque le Monsieur il a demandé 4 chiffres seulement
après la virgule et que c'est une façon de l'obtenir.
Pourquoi Val parceque le textbox contient (selon ce qu'indiqué) un
point.
Pourquoi Csng, parceque j'ai pris l'habitude de convertir les textbox
dans un format qui convient lorsqu'ils doivent intervenir dans un
calcul.
Merci quand même de nous donner la formule qui fonctionne dans tous les
cas de figure, parceque dans le principe de gèrer tous cas d'erreur
possibles je suis bien d'accord.
Cdlt.
lSteph
MichDenis a utilisé son clavier pour écrire :on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu
est numérique ?
Ta proposition :Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la réponse
utilisera la virugle et non le point... cela peut confondre l'usager.
;-)) De plus, si tu devrais utiliser le contenu du texbox3 qui vient de
recevoir le résultat de la première opération... comme il contient une
virgule comme séparateur décimale...faudrait prévoir le coup dans tes
opérations subséquentes !!! Si c'est une virgule qui est utilisé dans le
textbox comme séparateur décimale, la fonction Val() laisse tomber la
section décimale de ton chiffre contenu dans le textbox. Pourquoi utiliser
la fonction "Format()" ??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration de
Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" a écrit dans le message de news:
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
--
- -
Si tu veux un exemple, il y en a un ici : http://cjoint.com/?mjpbJOljK5
"lSteph" a écrit dans le message de news:
On est bien d'accord sur tout cela, je n'ai peuut-être pas été clair
non plus:
la solution dépend du contexte ou si on ne veut pas compliquer de celui
de la question ,
à moins de prendre le temps de gèrer d'avantage d'hypothèses aussi le
fait que tu évoquesproblématique des Textbox
supposait que tu avais
une solution plus universelle.
Tant pis merci quand même.
@+
lSteph
MichDenis a pensé très fort :L'essentiel de mon propos est contenu dans mon message précédent.
C'est possible qu'il ne soit pas évident à saisir ou que l'explication
soit floue ....Ce n'était pas une critique formulée à l'endroit de ta
proposition ou de celle de Serge mais plutôt un énoncé sur la
problématique des Textbox, des opérations mathématiques et
de l'opérateur décimale. Ceci dit, tu fais comme tu veux.
En vba, on retrouve la même problématique avec les dates.
La méthode de passer une date au code est importante afin
que le code ne soit pas lié au format "Date" du panneau de
configuration de son ordi. Si l'application se trimbale, certains
usagers risquent d'avoir des surprises à moins que tous aient
la même configuration !!!!Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
J'en ai une , faire les calculs dans la feuille en utilisant tous la
même convention de saisie donc pour les décimaux avec une virgule.
Voilà sans doute la cause de ce qui peut génèrer une erreur, sachant
que vba utilise le point comme séparateur, j'ai envisagé la réponse à
la question strictement comme elle était posée:
Pourquoi Format, parceque le Monsieur il a demandé 4 chiffres seulement
après la virgule et que c'est une façon de l'obtenir.
Pourquoi Val parceque le textbox contient (selon ce qu'indiqué) un
point.
Pourquoi Csng, parceque j'ai pris l'habitude de convertir les textbox
dans un format qui convient lorsqu'ils doivent intervenir dans un
calcul.
Merci quand même de nous donner la formule qui fonctionne dans tous les
cas de figure, parceque dans le principe de gèrer tous cas d'erreur
possibles je suis bien d'accord.
Cdlt.
lSteph
MichDenis a utilisé son clavier pour écrire :on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu
est numérique ?
Ta proposition :Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la
réponse utilisera la virugle et non le point... cela peut confondre
l'usager. ;-)) De plus, si tu devrais utiliser le contenu du texbox3 qui
vient de recevoir le résultat de la première opération... comme il contient
une virgule comme séparateur décimale...faudrait prévoir le coup dans tes
opérations subséquentes !!! Si c'est une virgule qui est utilisé dans le
textbox comme séparateur décimale, la fonction Val() laisse tomber la
section décimale de ton chiffre contenu dans le textbox. Pourquoi utiliser
la fonction "Format()" ??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration
de Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" a écrit dans le message de news:
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
Si tu veux un exemple, il y en a un ici : http://cjoint.com/?mjpbJOljK5
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
mn.4b067d6c8b8e8fcc.62733@frite.fr...
On est bien d'accord sur tout cela, je n'ai peuut-être pas été clair
non plus:
la solution dépend du contexte ou si on ne veut pas compliquer de celui
de la question ,
à moins de prendre le temps de gèrer d'avantage d'hypothèses aussi le
fait que tu évoques
problématique des Textbox
supposait que tu avais
une solution plus universelle.
Tant pis merci quand même.
@+
lSteph
MichDenis a pensé très fort :
L'essentiel de mon propos est contenu dans mon message précédent.
C'est possible qu'il ne soit pas évident à saisir ou que l'explication
soit floue ....Ce n'était pas une critique formulée à l'endroit de ta
proposition ou de celle de Serge mais plutôt un énoncé sur la
problématique des Textbox, des opérations mathématiques et
de l'opérateur décimale. Ceci dit, tu fais comme tu veux.
En vba, on retrouve la même problématique avec les dates.
La méthode de passer une date au code est importante afin
que le code ne soit pas lié au format "Date" du panneau de
configuration de son ordi. Si l'application se trimbale, certains
usagers risquent d'avoir des surprises à moins que tous aient
la même configuration !!!!
Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
J'en ai une , faire les calculs dans la feuille en utilisant tous la
même convention de saisie donc pour les décimaux avec une virgule.
Voilà sans doute la cause de ce qui peut génèrer une erreur, sachant
que vba utilise le point comme séparateur, j'ai envisagé la réponse à
la question strictement comme elle était posée:
Pourquoi Format, parceque le Monsieur il a demandé 4 chiffres seulement
après la virgule et que c'est une façon de l'obtenir.
Pourquoi Val parceque le textbox contient (selon ce qu'indiqué) un
point.
Pourquoi Csng, parceque j'ai pris l'habitude de convertir les textbox
dans un format qui convient lorsqu'ils doivent intervenir dans un
calcul.
Merci quand même de nous donner la formule qui fonctionne dans tous les
cas de figure, parceque dans le principe de gèrer tous cas d'erreur
possibles je suis bien d'accord.
Cdlt.
lSteph
MichDenis a utilisé son clavier pour écrire :
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu
est numérique ?
Ta proposition :
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la
réponse utilisera la virugle et non le point... cela peut confondre
l'usager. ;-)) De plus, si tu devrais utiliser le contenu du texbox3 qui
vient de recevoir le résultat de la première opération... comme il contient
une virgule comme séparateur décimale...faudrait prévoir le coup dans tes
opérations subséquentes !!! Si c'est une virgule qui est utilisé dans le
textbox comme séparateur décimale, la fonction Val() laisse tomber la
section décimale de ton chiffre contenu dans le textbox. Pourquoi utiliser
la fonction "Format()" ??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration
de Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
mn.45727d6cad9faa32.62733@frite.fr...
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :
Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !
Si tu veux un exemple, il y en a un ici : http://cjoint.com/?mjpbJOljK5
"lSteph" a écrit dans le message de news:
On est bien d'accord sur tout cela, je n'ai peuut-être pas été clair
non plus:
la solution dépend du contexte ou si on ne veut pas compliquer de celui
de la question ,
à moins de prendre le temps de gèrer d'avantage d'hypothèses aussi le
fait que tu évoquesproblématique des Textbox
supposait que tu avais
une solution plus universelle.
Tant pis merci quand même.
@+
lSteph
MichDenis a pensé très fort :L'essentiel de mon propos est contenu dans mon message précédent.
C'est possible qu'il ne soit pas évident à saisir ou que l'explication
soit floue ....Ce n'était pas une critique formulée à l'endroit de ta
proposition ou de celle de Serge mais plutôt un énoncé sur la
problématique des Textbox, des opérations mathématiques et
de l'opérateur décimale. Ceci dit, tu fais comme tu veux.
En vba, on retrouve la même problématique avec les dates.
La méthode de passer une date au code est importante afin
que le code ne soit pas lié au format "Date" du panneau de
configuration de son ordi. Si l'application se trimbale, certains
usagers risquent d'avoir des surprises à moins que tous aient
la même configuration !!!!Moi je n'ai pas de préférence...
***je crois que c'est surtout tes usagers que tu pertuberas !
Effectivement!
J'en ai une , faire les calculs dans la feuille en utilisant tous la
même convention de saisie donc pour les décimaux avec une virgule.
Voilà sans doute la cause de ce qui peut génèrer une erreur, sachant
que vba utilise le point comme séparateur, j'ai envisagé la réponse à
la question strictement comme elle était posée:
Pourquoi Format, parceque le Monsieur il a demandé 4 chiffres seulement
après la virgule et que c'est une façon de l'obtenir.
Pourquoi Val parceque le textbox contient (selon ce qu'indiqué) un
point.
Pourquoi Csng, parceque j'ai pris l'habitude de convertir les textbox
dans un format qui convient lorsqu'ils doivent intervenir dans un
calcul.
Merci quand même de nous donner la formule qui fonctionne dans tous les
cas de figure, parceque dans le principe de gèrer tous cas d'erreur
possibles je suis bien d'accord.
Cdlt.
lSteph
MichDenis a utilisé son clavier pour écrire :on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
Moi je n'ai pas de préférence...mais que tu utilises le point ou la virgule
tu dois prévoir dans ton code une manière de contrôler le contenu des
textbox... et le résultat attendu.
Admettons que ton séparateur décimale est la virgule et que tu permettes
à l'usager d'utiliser le point dans les textbox...
Si tu veux vérifier que le contenu du textbox est numérique, il est logique
d'utiliser ceci : If isnumeric(Me.textbox1.value) = True then
'le reste du code
End If
Ben, la fonction retourne Faux si tu as le point comme séparateur décimale
dans ton textbox et la virgule comme séparateur décimale dans ton panneau
de configuration. Quelle fonction utiliseras-tu pour savoir si le contenu
est numérique ?
Ta proposition :Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
la fonction Val() travaille exclusivement avec le point comme séparateur
décimale...De plus même si dans les textbox, tu as saisi un point comme
séparateur décimale, si l'usager a la virgule comme séparateur décimale
dans le panneau de configuration de Windows, le textbox affichant la
réponse utilisera la virugle et non le point... cela peut confondre
l'usager. ;-)) De plus, si tu devrais utiliser le contenu du texbox3 qui
vient de recevoir le résultat de la première opération... comme il contient
une virgule comme séparateur décimale...faudrait prévoir le coup dans tes
opérations subséquentes !!! Si c'est une virgule qui est utilisé dans le
textbox comme séparateur décimale, la fonction Val() laisse tomber la
section décimale de ton chiffre contenu dans le textbox. Pourquoi utiliser
la fonction "Format()" ??? Quel est le rôle de la fonction CSng() ici ?
Par contre, les fonctions de conversion Cdbl(), Csng() travaille
exclusivement avec le séparateur contenu dans le panneau de configuration
de Windows sinon la ligne de commande plante tout simplement ...
Me.TextBox3.Value = Format(CDbl(TextBox1.Value) / CDbl(TextBox2.Value),
"0.0000") Me.TextBox3.Value = Format(CSng(TextBox1.Value) /
CSng(TextBox2.Value), "0.0000")
Dès que tu utilises le contenu des textbox pour effectuer des opérations
mathématiques, tu dois obligatoirement apprendre à gérer le séparateur
décimale afin d'obtenir une homogénéité tant au niveau de la saisie, de
l'affichage que de la méthode de calcul à travers toute ton application.Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
***je crois que c'est surtout tes usagers que tu pertuberas !
ET merci pour la bière.
"lSteph" a écrit dans le message de news:
Bonsoir MD,
sitôt que tu as traversé l'atlantique, je t'offre une bière +
de bon coeur, mais
on a déjà mis longhtemps à comprendre que dans les textbox fallait
utiliser le point
à l'instar de la feuille qui elle requiert "selon la norme fr" une
virgule comme séparateur décimal,
Alors c'est pas gentil ;o)) d'vouloir ainsi nous perturber.
sinon c'est amusant , cela arrondi..
Bon allez tu veux une deuxième Bière (sur le compte de Serge), donne ta
formule, qui marche dans tous les cas.
Amicordialement.
lSteph.
MichDenis avait prétendu :Les deux trucs suivants sont-ils équivalents ?
Format(TextBox41.Value / TextBox42.Value, "0.0000")
Format(CSng(Val(TextBox41)) / CSng(Val(TextBox42)), "0.0000")
Bonjour Serge,
As-tu testé les deux séparateurs décimales possibles dans tes textbox ?
La virgule ou le point ? Est-ce que cela fonctionne dans les 2 cas ?
Ceci vaut pour les 2 lignes de code !!!!
Ça vaut une petite bière !