Bonjour à tous
Voila mon soucis, j'utilise des textbox pour rentrer des nombres dans ma
macro.
Le problème est que lorsque je rentre des nombres décimaux avec le pavé
numérique, le point (132.15) fait "planter" ma macro.
Je suis donc obligé de saisir les décimaux avec des virgules (132,15), pff
galère.
Comment obliger ma textbox à ne reconnaître que des nombres, ou de modifier
mon point en virgule ?
Y a t il une âme charitable qui aurait une (ou plusieurs) solutions à me
proposer
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
anonymousA
Bonjour,
p.e If IsNumeric(TextBox1) then range("A1")Íbl(Txtbox1)
A+
Bonjour à tous Voila mon soucis, j'utilise des textbox pour rentrer des nombres dans ma macro. Le problème est que lorsque je rentre des nombres décimaux avec le pavé numérique, le point (132.15) fait "planter" ma macro. Je suis donc obligé de saisir les décimaux avec des virgules (132,15), pff galère. Comment obliger ma textbox à ne reconnaître que des nombres, ou de modifier mon point en virgule ? Y a t il une âme charitable qui aurait une (ou plusieurs) solutions à me proposer
Bonjour,
p.e
If IsNumeric(TextBox1) then range("A1")Íbl(Txtbox1)
A+
Bonjour à tous
Voila mon soucis, j'utilise des textbox pour rentrer des nombres dans ma
macro.
Le problème est que lorsque je rentre des nombres décimaux avec le pavé
numérique, le point (132.15) fait "planter" ma macro.
Je suis donc obligé de saisir les décimaux avec des virgules (132,15), pff
galère.
Comment obliger ma textbox à ne reconnaître que des nombres, ou de modifier
mon point en virgule ?
Y a t il une âme charitable qui aurait une (ou plusieurs) solutions à me
proposer
p.e If IsNumeric(TextBox1) then range("A1")Íbl(Txtbox1)
A+
Bonjour à tous Voila mon soucis, j'utilise des textbox pour rentrer des nombres dans ma macro. Le problème est que lorsque je rentre des nombres décimaux avec le pavé numérique, le point (132.15) fait "planter" ma macro. Je suis donc obligé de saisir les décimaux avec des virgules (132,15), pff galère. Comment obliger ma textbox à ne reconnaître que des nombres, ou de modifier mon point en virgule ? Y a t il une âme charitable qui aurait une (ou plusieurs) solutions à me proposer
Michel Gaboly
Bonjour
Private Sub TextBox1_Change() Dim Sep$ Sep = Application.International(xlDecimalSeparator) TextBox1 = Replace(TextBox1, ".", Sep) TextBox1 = Replace(TextBox1, ",", Sep) End Sub
Tu stockes dans une variable le séparateur décimal, et tu remplaces p oint ET virgule par le "bon" séparateur.
Ainsi cela marche même si tu changes de machine.
Bonjour à tous Voila mon soucis, j'utilise des textbox pour rentrer des nombres dans m a macro. Le problème est que lorsque je rentre des nombres décimaux avec le pavé numérique, le point (132.15) fait "planter" ma macro. Je suis donc obligé de saisir les décimaux avec des virgules (132, 15), pff galère. Comment obliger ma textbox à ne reconnaître que des nombres, ou de modifier mon point en virgule ? Y a t il une âme charitable qui aurait une (ou plusieurs) solutions à me proposer
-- Cordialement,
Michel Gaboly www.gaboly.com
Bonjour
Private Sub TextBox1_Change()
Dim Sep$
Sep = Application.International(xlDecimalSeparator)
TextBox1 = Replace(TextBox1, ".", Sep)
TextBox1 = Replace(TextBox1, ",", Sep)
End Sub
Tu stockes dans une variable le séparateur décimal, et tu remplaces p oint ET virgule par le "bon" séparateur.
Ainsi cela marche même si tu changes de machine.
Bonjour à tous
Voila mon soucis, j'utilise des textbox pour rentrer des nombres dans m a
macro.
Le problème est que lorsque je rentre des nombres décimaux avec le pavé
numérique, le point (132.15) fait "planter" ma macro.
Je suis donc obligé de saisir les décimaux avec des virgules (132, 15), pff
galère.
Comment obliger ma textbox à ne reconnaître que des nombres, ou de modifier
mon point en virgule ?
Y a t il une âme charitable qui aurait une (ou plusieurs) solutions à me
proposer
Private Sub TextBox1_Change() Dim Sep$ Sep = Application.International(xlDecimalSeparator) TextBox1 = Replace(TextBox1, ".", Sep) TextBox1 = Replace(TextBox1, ",", Sep) End Sub
Tu stockes dans une variable le séparateur décimal, et tu remplaces p oint ET virgule par le "bon" séparateur.
Ainsi cela marche même si tu changes de machine.
Bonjour à tous Voila mon soucis, j'utilise des textbox pour rentrer des nombres dans m a macro. Le problème est que lorsque je rentre des nombres décimaux avec le pavé numérique, le point (132.15) fait "planter" ma macro. Je suis donc obligé de saisir les décimaux avec des virgules (132, 15), pff galère. Comment obliger ma textbox à ne reconnaître que des nombres, ou de modifier mon point en virgule ? Y a t il une âme charitable qui aurait une (ou plusieurs) solutions à me proposer
-- Cordialement,
Michel Gaboly www.gaboly.com
michdenis
Bonjour Zit,
La procédure suivante :
- Permet de saisir seulement UN séparateur décimale dans le textbox - le séparateur utilisé la virgule ou le point ... le même utilisé dans la feuille de calcul. - Permet de saisir seulement des chiffres dans le textbox
Le résultat final est nécessaire un nombre. Pour ce faire tu dois utliser une fonction de conversion du genre : Clng(textbox) cdbl(textbox)... voir la rubrique dans l'aide sous Fonction de conversion pour savoir celle qui convient à ton application.
la fonction Val() est à bannir si tu utilises ce qui précède car cette dernière ne reconnaît que le point comme séparateur décimale alors que la procédure peut très bien fonctionner avec les 2 séparateurs dicimales.
'-------------------------------------- Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Dim Sep As String Sep = Application.International(xlDecimalSeparator) If (KeyAscii = 44 Or KeyAscii = 46) And _ InStr(1, TextBox1, Sep, vbTextCompare) = 0 Then KeyAscii = Asc(Sep) Exit Sub End If If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 Exit Sub End If End Sub '--------------------------------------
Salutations!
"Zit" a écrit dans le message de news: Bonjour à tous Voila mon soucis, j'utilise des textbox pour rentrer des nombres dans ma macro. Le problème est que lorsque je rentre des nombres décimaux avec le pavé numérique, le point (132.15) fait "planter" ma macro. Je suis donc obligé de saisir les décimaux avec des virgules (132,15), pff galère. Comment obliger ma textbox à ne reconnaître que des nombres, ou de modifier mon point en virgule ? Y a t il une âme charitable qui aurait une (ou plusieurs) solutions à me proposer
Bonjour Zit,
La procédure suivante :
- Permet de saisir seulement UN séparateur décimale dans le textbox
- le séparateur utilisé la virgule ou le point ... le même utilisé dans la
feuille de calcul.
- Permet de saisir seulement des chiffres dans le textbox
Le résultat final est nécessaire un nombre. Pour ce faire tu dois
utliser une fonction de conversion du genre : Clng(textbox)
cdbl(textbox)... voir la rubrique dans l'aide sous Fonction de conversion
pour savoir celle qui convient à ton application.
la fonction Val() est à bannir si tu utilises ce qui précède car cette dernière
ne reconnaît que le point comme séparateur décimale alors que la procédure
peut très bien fonctionner avec les 2 séparateurs dicimales.
'--------------------------------------
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim Sep As String
Sep = Application.International(xlDecimalSeparator)
If (KeyAscii = 44 Or KeyAscii = 46) And _
InStr(1, TextBox1, Sep, vbTextCompare) = 0 Then
KeyAscii = Asc(Sep)
Exit Sub
End If
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
Exit Sub
End If
End Sub
'--------------------------------------
Salutations!
"Zit" <nospam-bvt54@hotmail.com> a écrit dans le message de news: OZT0FePGGHA.1032@TK2MSFTNGP11.phx.gbl...
Bonjour à tous
Voila mon soucis, j'utilise des textbox pour rentrer des nombres dans ma
macro.
Le problème est que lorsque je rentre des nombres décimaux avec le pavé
numérique, le point (132.15) fait "planter" ma macro.
Je suis donc obligé de saisir les décimaux avec des virgules (132,15), pff
galère.
Comment obliger ma textbox à ne reconnaître que des nombres, ou de modifier
mon point en virgule ?
Y a t il une âme charitable qui aurait une (ou plusieurs) solutions à me
proposer
- Permet de saisir seulement UN séparateur décimale dans le textbox - le séparateur utilisé la virgule ou le point ... le même utilisé dans la feuille de calcul. - Permet de saisir seulement des chiffres dans le textbox
Le résultat final est nécessaire un nombre. Pour ce faire tu dois utliser une fonction de conversion du genre : Clng(textbox) cdbl(textbox)... voir la rubrique dans l'aide sous Fonction de conversion pour savoir celle qui convient à ton application.
la fonction Val() est à bannir si tu utilises ce qui précède car cette dernière ne reconnaît que le point comme séparateur décimale alors que la procédure peut très bien fonctionner avec les 2 séparateurs dicimales.
'-------------------------------------- Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Dim Sep As String Sep = Application.International(xlDecimalSeparator) If (KeyAscii = 44 Or KeyAscii = 46) And _ InStr(1, TextBox1, Sep, vbTextCompare) = 0 Then KeyAscii = Asc(Sep) Exit Sub End If If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 Exit Sub End If End Sub '--------------------------------------
Salutations!
"Zit" a écrit dans le message de news: Bonjour à tous Voila mon soucis, j'utilise des textbox pour rentrer des nombres dans ma macro. Le problème est que lorsque je rentre des nombres décimaux avec le pavé numérique, le point (132.15) fait "planter" ma macro. Je suis donc obligé de saisir les décimaux avec des virgules (132,15), pff galère. Comment obliger ma textbox à ne reconnaître que des nombres, ou de modifier mon point en virgule ? Y a t il une âme charitable qui aurait une (ou plusieurs) solutions à me proposer
Zit
Merci à tous pour vos réponses, je vais en faire bon usage. Il ne me reste plus qu'à les "digérer" ;-)
Zit
Merci à tous pour vos réponses, je vais en faire bon usage.
Il ne me reste plus qu'à les "digérer" ;-)
Merci à tous pour vos réponses, je vais en faire bon usage. Il ne me reste plus qu'à les "digérer" ;-)
Zit
thys1961
Le samedi 14 Janvier 2006 à 11:45 par Zit :
Bonjour à tous Voila mon soucis, j'utilise des textbox pour rentrer des nombres dans ma macro. Le problème est que lorsque je rentre des nombres décimaux avec le pavé numérique, le point (132.15) fait "planter" ma macro. Je suis donc obligé de saisir les décimaux avec des virgules (132,15), pff galère. Comment obliger ma textbox à ne reconnaître que des nombres, ou de modifier mon point en virgule ? Y a t il une âme charitable qui aurait une (ou plusieurs) solutions à me proposer
Bonjour à toutes et tous
Je fais revivre ce sujet, car j'ai la même problématique, mais une partie est de mon soucis est déjà résolu grâce au post de Michel Gaboly à savoir
Private Sub TextBox1_Change() Dim Sep$ Sep = Application.International(xlDecimalSeparator) TextBox1 = Replace(TextBox1, "e;."e;, Sep) TextBox1 = Replace(TextBox1, "e;,"e;, Sep) End Sub
en effet mon but est qu'a partir d'un useform, j'entre une donnée numerique avec décimale 2 après la virgule dans un textbox, (à partir du clavier numérique), et que cette donné saisie se positionne à la première ligne vide d'une colonne d'un tableau Excel, elle même formatée en (format cellule nombre décimale 2 et séparateur des milliers avec espace
donc actuellement et en suivant l'astuce de Michel, ma saisie dans le textbox me donne bien une valeur, par exemple 154,26
mais lorsque je la valide depuis le Useform, dans la feuilles Excel ce montant se positionne bien au bon endroit, mais se positionne à gauche dans la cellule et ne devient numérique que si (curseur sur la cellule du nombre) je fais F2 comme pour faire une modification puis entrer (retour chariot) et seulement à ce moment là elle devient numérique et formatée comme je le veux
Donc si vous avez des idées, je suis preneur
Merci d'avance
Sincères salutations
Le samedi 14 Janvier 2006 à 11:45 par Zit :
Bonjour à tous
Voila mon soucis, j'utilise des textbox pour rentrer des nombres dans ma
macro.
Le problème est que lorsque je rentre des nombres décimaux avec
le pavé
numérique, le point (132.15) fait "planter" ma macro.
Je suis donc obligé de saisir les décimaux avec des virgules
(132,15), pff
galère.
Comment obliger ma textbox à ne reconnaître que des nombres, ou de
modifier
mon point en virgule ?
Y a t il une âme charitable qui aurait une (ou plusieurs) solutions
à me
proposer
Bonjour à toutes et tous
Je fais revivre ce sujet, car j'ai la même problématique, mais une partie est de mon soucis est déjà résolu grâce au post de Michel Gaboly à savoir
Private Sub TextBox1_Change()
Dim Sep$
Sep = Application.International(xlDecimalSeparator)
TextBox1 = Replace(TextBox1, "e;."e;, Sep)
TextBox1 = Replace(TextBox1, "e;,"e;, Sep)
End Sub
en effet mon but est qu'a partir d'un useform, j'entre une donnée numerique avec décimale 2 après la virgule dans un textbox, (à partir du clavier numérique), et que cette donné saisie se positionne à la première ligne vide d'une colonne d'un tableau Excel, elle même formatée en (format cellule nombre décimale 2 et séparateur des milliers avec espace
donc actuellement et en suivant l'astuce de Michel, ma saisie dans le textbox me donne bien une valeur, par exemple 154,26
mais lorsque je la valide depuis le Useform, dans la feuilles Excel ce montant se positionne bien au bon endroit, mais se positionne à gauche dans la cellule et ne devient numérique que si (curseur sur la cellule du nombre) je fais F2 comme pour faire une modification puis entrer (retour chariot) et seulement à ce moment là elle devient numérique et formatée comme je le veux
Bonjour à tous Voila mon soucis, j'utilise des textbox pour rentrer des nombres dans ma macro. Le problème est que lorsque je rentre des nombres décimaux avec le pavé numérique, le point (132.15) fait "planter" ma macro. Je suis donc obligé de saisir les décimaux avec des virgules (132,15), pff galère. Comment obliger ma textbox à ne reconnaître que des nombres, ou de modifier mon point en virgule ? Y a t il une âme charitable qui aurait une (ou plusieurs) solutions à me proposer
Bonjour à toutes et tous
Je fais revivre ce sujet, car j'ai la même problématique, mais une partie est de mon soucis est déjà résolu grâce au post de Michel Gaboly à savoir
Private Sub TextBox1_Change() Dim Sep$ Sep = Application.International(xlDecimalSeparator) TextBox1 = Replace(TextBox1, "e;."e;, Sep) TextBox1 = Replace(TextBox1, "e;,"e;, Sep) End Sub
en effet mon but est qu'a partir d'un useform, j'entre une donnée numerique avec décimale 2 après la virgule dans un textbox, (à partir du clavier numérique), et que cette donné saisie se positionne à la première ligne vide d'une colonne d'un tableau Excel, elle même formatée en (format cellule nombre décimale 2 et séparateur des milliers avec espace
donc actuellement et en suivant l'astuce de Michel, ma saisie dans le textbox me donne bien une valeur, par exemple 154,26
mais lorsque je la valide depuis le Useform, dans la feuilles Excel ce montant se positionne bien au bon endroit, mais se positionne à gauche dans la cellule et ne devient numérique que si (curseur sur la cellule du nombre) je fais F2 comme pour faire une modification puis entrer (retour chariot) et seulement à ce moment là elle devient numérique et formatée comme je le veux