OVH Cloud OVH Cloud

. ou ,

3 réponses
Avatar
Jean Claude
Bonjour,

j'ai cr=E9=E9e une macro avec des Userform. Si je saisi du=20
texte no problemo. Par contre lorsque je saisi des nombres=20
afin d'effectuer des calculs, ca ne marche pas (c'est=20
considere comme du texte. Je suis donc oblig=E9 de=20
multiplier par 1 pour transformer ca en chiffre (bizarre,=20
non ?)
De meme, dans les userform, le "." du pave numerique ne se=20
transforme pas en "," comme dans la feuille. Du coup=20
erreur de vaiable.

Avez vous la soluce ?

Merci d'avance

3 réponses

Avatar
ru-th
Salut

ben, le principe d'un TextBox, c'est de renvoyer du texte
le *1 est une solution parmi d'autres (cdbl....)

pour la virgule un application.substitute(textbox1.value,".",",")
devrait être suffisant

a+
rural thierry


"Jean Claude" a écrit dans le message
de news: 04a501c3acef$ed5dbb10$
Bonjour,

j'ai créée une macro avec des Userform. Si je saisi du
texte no problemo. Par contre lorsque je saisi des nombres
afin d'effectuer des calculs, ca ne marche pas (c'est
considere comme du texte. Je suis donc obligé de
multiplier par 1 pour transformer ca en chiffre (bizarre,
non ?)
De meme, dans les userform, le "." du pave numerique ne se
transforme pas en "," comme dans la feuille. Du coup
erreur de vaiable.

Avez vous la soluce ?

Merci d'avance
Avatar
Jean Claude
Merci


-----Message d'origine-----
Salut

ben, le principe d'un TextBox, c'est de renvoyer du texte
le *1 est une solution parmi d'autres (cdbl....)

pour la virgule un application.substitute
(textbox1.value,".",",")

devrait être suffisant

a+
rural thierry


"Jean Claude" a
écrit dans le message

de news: 04a501c3acef$ed5dbb10$
Bonjour,

j'ai créée une macro avec des Userform. Si je saisi du
texte no problemo. Par contre lorsque je saisi des nombres
afin d'effectuer des calculs, ca ne marche pas (c'est
considere comme du texte. Je suis donc obligé de
multiplier par 1 pour transformer ca en chiffre (bizarre,
non ?)
De meme, dans les userform, le "." du pave numerique ne se
transforme pas en "," comme dans la feuille. Du coup
erreur de vaiable.

Avez vous la soluce ?

Merci d'avance


.



Avatar
Michel Gaboly
Bonjour,

Comme son nom l'indique, ;-)) TextBox manipule du texte.

Tu as 2 solutions : utiliser une variale intermédiaire, de
type numérique, et Excel forcera la conversion ou t'affic-
hera un message "erreur de type", ou utiliser l'une des
fonctions de conversion de type (Cint, CDble, ...)

Pour le sé^parateur, il faut que cela fonctionne quel que soit
le séparateur décimal (transmission de la macro à quelqu'un
d'autre, changement de poste ou des paramètres régionaux).

Pour cela, il faut récupérer le séparaeur utilisé sur la ma-
chine et remplacer le point et la virgule par ce séparateur :

Voici une procédure permettant de s'assurer que ce qui est
entré dans un TextBox nommé "TMontant" est numérique

Le "-" est accepté comme 1er caractère, pour ne pas em-
pêcher l'entrée d'une valeur négative.

Private Sub TMontant_Change()
Dim Sep As String
Sep = Application.International(xlDecimalSeparator)
' Selon les pays, le séparateur décimal varie (virgule en France, point aux USA, en Suisse, ...)
' Avant de controler si le contenu est numérique, il faut remplacer le point (ou la virgule)
' utilisé(e) à tort par le bon séparateur.
TMontant = Application.WorksheetFunction.Substitute(TMontant, ".", Sep)
TMontant = Application.WorksheetFunction.Substitute(TMontant, ",", Sep)
If TMontant <> "" Then
If Not IsNumeric(TMontant) And TMontant <> "-" Then
MsgBox "Le montant doit être un nombre !", 48
TMontant = Left(TMontant, Len(TMontant) - 1)
End If
End If
End Sub


Bonjour,

j'ai créée une macro avec des Userform. Si je saisi du
texte no problemo. Par contre lorsque je saisi des nombres
afin d'effectuer des calculs, ca ne marche pas (c'est
considere comme du texte. Je suis donc obligé de
multiplier par 1 pour transformer ca en chiffre (bizarre,
non ?)
De meme, dans les userform, le "." du pave numerique ne se
transforme pas en "," comme dans la feuille. Du coup
erreur de vaiable.

Avez vous la soluce ?

Merci d'avance


--
Cordialement,

Michel Gaboly
http://www.gaboly.com