Mon Système d'exploitation est en français quand j'utilise mon
clavier numérique dans VB6 (dans une application que j'ai écrie) il me donne
un point au lieu de la virgule.
et j'ai l'erreur : Erreur d'exécution "13: Type incompatible
quand mon application se trouve sur un système Anglais et que j'utilise la
clavier
numérique je mais le point sans problème aucune erreur.
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
le_troll
Bonjour, Faut voir ce que tu rentres dans le code "." ou ",", normalement il marche en anglais "."... Sinon, voir aussi ton OS, est-il paramétré pour la Gaule ? -- ------------------------------------------ Merci, @+, bye, Joe
------------------------------------------ Avec une hache, celui qui tient le manche a toujours raison !
"pierfrene" <moldry@(supprimerceci)hotmail.com> a écrit dans le message de news:
Salut a vous
Mon Système d'exploitation est en français quand j'utilise mon clavier numérique dans VB6 (dans une application que j'ai écrie) il me
donne
un point au lieu de la virgule. et j'ai l'erreur : Erreur d'exécution "13: Type incompatible
quand mon application se trouve sur un système Anglais et que j'utilise la clavier numérique je mais le point sans problème aucune erreur.
Il y t'il une solution pour régler ce problème.
Merci a l'avance
Bonjour,
Faut voir ce que tu rentres dans le code "." ou ",", normalement il marche
en anglais "."...
Sinon, voir aussi ton OS, est-il paramétré pour la Gaule ?
--
------------------------------------------
Merci, @+, bye, Joe
montmartre75@iFrance.com
------------------------------------------
Avec une hache, celui qui tient le manche a toujours raison !
"pierfrene" <moldry@(supprimerceci)hotmail.com> a écrit dans le message de
news: uNFqYl9HEHA.3276@TK2MSFTNGP09.phx.gbl...
Salut a vous
Mon Système d'exploitation est en français quand j'utilise mon
clavier numérique dans VB6 (dans une application que j'ai écrie) il me
donne
un point au lieu de la virgule.
et j'ai l'erreur : Erreur d'exécution "13: Type incompatible
quand mon application se trouve sur un système Anglais et que j'utilise la
clavier
numérique je mais le point sans problème aucune erreur.
Bonjour, Faut voir ce que tu rentres dans le code "." ou ",", normalement il marche en anglais "."... Sinon, voir aussi ton OS, est-il paramétré pour la Gaule ? -- ------------------------------------------ Merci, @+, bye, Joe
------------------------------------------ Avec une hache, celui qui tient le manche a toujours raison !
"pierfrene" <moldry@(supprimerceci)hotmail.com> a écrit dans le message de news:
Salut a vous
Mon Système d'exploitation est en français quand j'utilise mon clavier numérique dans VB6 (dans une application que j'ai écrie) il me
donne
un point au lieu de la virgule. et j'ai l'erreur : Erreur d'exécution "13: Type incompatible
quand mon application se trouve sur un système Anglais et que j'utilise la clavier numérique je mais le point sans problème aucune erreur.
Il y t'il une solution pour régler ce problème.
Merci a l'avance
Antoun
pierfrene a écrit:
Salut a vous
Mon Système d'exploitation est en français quand j'utilise mon clavier numérique dans VB6 (dans une application que j'ai écrie) il me donne un point au lieu de la virgule.
tu remarqueras que c'est un comportement tout ce qu'il y a de + normal ! ton pavé numérique comporte bien une touche . et non une touche virgule.
Seul Excel est suffisamment malin et substitue une , au . La solution est de faire comme lui !
(...)
Il y t'il une solution pour régler ce problème.
Ton code doit commencer par récupérer le séparateur décimal de l'OS. Il y a des API pour cela, mais le plus simple est de jouer avec CStr :
SepaDec = Mid(CStr(1 / 2), 2, 1)
Ensuite, si ton SepaDec n'est pas le point, tu utilises le KeyPress ou le KeyDown des zones de saisies concernées pour faire la substitution.
pierfrene a écrit:
Salut a vous
Mon Système d'exploitation est en français quand j'utilise mon
clavier numérique dans VB6 (dans une application que j'ai écrie) il me donne
un point au lieu de la virgule.
tu remarqueras que c'est un comportement tout ce qu'il y a de + normal !
ton pavé numérique comporte bien une touche . et non une touche virgule.
Seul Excel est suffisamment malin et substitue une , au .
La solution est de faire comme lui !
(...)
Il y t'il une solution pour régler ce problème.
Ton code doit commencer par récupérer le séparateur décimal de l'OS. Il
y a des API pour cela, mais le plus simple est de jouer avec CStr :
SepaDec = Mid(CStr(1 / 2), 2, 1)
Ensuite, si ton SepaDec n'est pas le point, tu utilises le KeyPress ou
le KeyDown des zones de saisies concernées pour faire la substitution.
Mon Système d'exploitation est en français quand j'utilise mon clavier numérique dans VB6 (dans une application que j'ai écrie) il me donne un point au lieu de la virgule.
tu remarqueras que c'est un comportement tout ce qu'il y a de + normal ! ton pavé numérique comporte bien une touche . et non une touche virgule.
Seul Excel est suffisamment malin et substitue une , au . La solution est de faire comme lui !
(...)
Il y t'il une solution pour régler ce problème.
Ton code doit commencer par récupérer le séparateur décimal de l'OS. Il y a des API pour cela, mais le plus simple est de jouer avec CStr :
SepaDec = Mid(CStr(1 / 2), 2, 1)
Ensuite, si ton SepaDec n'est pas le point, tu utilises le KeyPress ou le KeyDown des zones de saisies concernées pour faire la substitution.
pierfrene
> Ton code doit commencer par récupérer le séparateur décimal de l'OS. Il y a des API pour cela, mais le plus simple est de jouer avec CStr :
SepaDec = Mid(CStr(1 / 2), 2, 1)
Ensuite, si ton SepaDec n'est pas le point, tu utilises le KeyPress ou le KeyDown des zones de saisies concernées pour faire la substitution.
Sa m'intéresse. j'aurais de besoin de plus explication, parce la je suis perdue.
> Ton code doit commencer par récupérer le séparateur décimal de l'OS. Il
y a des API pour cela, mais le plus simple est de jouer avec CStr :
SepaDec = Mid(CStr(1 / 2), 2, 1)
Ensuite, si ton SepaDec n'est pas le point, tu utilises le KeyPress ou
le KeyDown des zones de saisies concernées pour faire la substitution.
Sa m'intéresse. j'aurais de besoin de plus explication, parce la je suis
perdue.
> Ton code doit commencer par récupérer le séparateur décimal de l'OS. Il y a des API pour cela, mais le plus simple est de jouer avec CStr :
SepaDec = Mid(CStr(1 / 2), 2, 1)
Ensuite, si ton SepaDec n'est pas le point, tu utilises le KeyPress ou le KeyDown des zones de saisies concernées pour faire la substitution.
Sa m'intéresse. j'aurais de besoin de plus explication, parce la je suis perdue.
Antoine Dinimant
Supposons que ton projet VB contienne une feuille nommée Feuille, et que sur cette feuille il y ait une zone de saisie (TextBox) nommée Saisie. Cette zone est destinée à recevoir un nombre, donc si tu es en OS français, tout point qui y est tapé doit être transformé en virgule.
Tu commences par créer une variable SepaDec au niveau de ta Feuille ou, mieux, d'un module séparé.
Public SepaDec As String
A l'ouverture de ton projet, par ex. sur le Form_Load de Feuille, tu détermines ton séparateur décimal (on suppose qu'il ne changera pas pendant l'exécution du projet).
Private Sub Form_Load() SepaDec = Mid(CStr(1 / 2), 2, 1) End Sub
Ensuite, tu vas dans l'événement KeyPress de ta zone de saisie, et tu y mets le code suivant :
Private Sub Saisie_KeyPress(KeyAscii As Integer) If SepaDec <> "." And KeyAscii = Asc(".") Then KeyAscii = Asc(SepaDec) End Sub
Alternativement, si tu veux que tous les contrôles de ta feuille réagissent comme cela, tu mets le If SepaDec <> "." And KeyAscii = Asc(".") Then KeyAscii = Asc(SepaDec) dans le Form_KeyPress au lieu de le mettre dans le Saisie_KeyPress, et tu mets la propriété KeyPreview de ta feuille sur True (ce qui veut dire qu'elle intercepte les événements du clavier avant de les re-transmettre à ses contrôles).
pierfrene a écrit: >>Ton code doit commencer par récupérer le séparateur décimal de l'OS. Il >>y a des API pour cela, mais le plus simple est de jouer avec CStr : >> >>SepaDec = Mid(CStr(1 / 2), 2, 1) >> >>Ensuite, si ton SepaDec n'est pas le point, tu utilises le KeyPress ou >>le KeyDown des zones de saisies concernées pour faire la substitution. > > > Sa m'intéresse. j'aurais de besoin de plus explication, parce la je suis > perdue. > >
Supposons que ton projet VB contienne une feuille nommée Feuille, et que
sur cette feuille il y ait une zone de saisie (TextBox) nommée Saisie.
Cette zone est destinée à recevoir un nombre, donc si tu es en OS
français, tout point qui y est tapé doit être transformé en virgule.
Tu commences par créer une variable SepaDec au niveau de ta Feuille ou,
mieux, d'un module séparé.
Public SepaDec As String
A l'ouverture de ton projet, par ex. sur le Form_Load de Feuille, tu
détermines ton séparateur décimal (on suppose qu'il ne changera pas
pendant l'exécution du projet).
Private Sub Form_Load()
SepaDec = Mid(CStr(1 / 2), 2, 1)
End Sub
Ensuite, tu vas dans l'événement KeyPress de ta zone de saisie, et tu y
mets le code suivant :
Private Sub Saisie_KeyPress(KeyAscii As Integer)
If SepaDec <> "." And KeyAscii = Asc(".") Then KeyAscii = Asc(SepaDec)
End Sub
Alternativement, si tu veux que tous les contrôles de ta feuille
réagissent comme cela, tu mets le If SepaDec <> "." And KeyAscii =
Asc(".") Then KeyAscii = Asc(SepaDec) dans le Form_KeyPress au lieu de
le mettre dans le Saisie_KeyPress, et tu mets la propriété KeyPreview de
ta feuille sur True (ce qui veut dire qu'elle intercepte les événements
du clavier avant de les re-transmettre à ses contrôles).
pierfrene a écrit:
>>Ton code doit commencer par récupérer le séparateur décimal de l'OS. Il
>>y a des API pour cela, mais le plus simple est de jouer avec CStr :
>>
>>SepaDec = Mid(CStr(1 / 2), 2, 1)
>>
>>Ensuite, si ton SepaDec n'est pas le point, tu utilises le KeyPress ou
>>le KeyDown des zones de saisies concernées pour faire la substitution.
>
>
> Sa m'intéresse. j'aurais de besoin de plus explication, parce la je suis
> perdue.
>
>
Supposons que ton projet VB contienne une feuille nommée Feuille, et que sur cette feuille il y ait une zone de saisie (TextBox) nommée Saisie. Cette zone est destinée à recevoir un nombre, donc si tu es en OS français, tout point qui y est tapé doit être transformé en virgule.
Tu commences par créer une variable SepaDec au niveau de ta Feuille ou, mieux, d'un module séparé.
Public SepaDec As String
A l'ouverture de ton projet, par ex. sur le Form_Load de Feuille, tu détermines ton séparateur décimal (on suppose qu'il ne changera pas pendant l'exécution du projet).
Private Sub Form_Load() SepaDec = Mid(CStr(1 / 2), 2, 1) End Sub
Ensuite, tu vas dans l'événement KeyPress de ta zone de saisie, et tu y mets le code suivant :
Private Sub Saisie_KeyPress(KeyAscii As Integer) If SepaDec <> "." And KeyAscii = Asc(".") Then KeyAscii = Asc(SepaDec) End Sub
Alternativement, si tu veux que tous les contrôles de ta feuille réagissent comme cela, tu mets le If SepaDec <> "." And KeyAscii = Asc(".") Then KeyAscii = Asc(SepaDec) dans le Form_KeyPress au lieu de le mettre dans le Saisie_KeyPress, et tu mets la propriété KeyPreview de ta feuille sur True (ce qui veut dire qu'elle intercepte les événements du clavier avant de les re-transmettre à ses contrôles).
pierfrene a écrit: >>Ton code doit commencer par récupérer le séparateur décimal de l'OS. Il >>y a des API pour cela, mais le plus simple est de jouer avec CStr : >> >>SepaDec = Mid(CStr(1 / 2), 2, 1) >> >>Ensuite, si ton SepaDec n'est pas le point, tu utilises le KeyPress ou >>le KeyDown des zones de saisies concernées pour faire la substitution. > > > Sa m'intéresse. j'aurais de besoin de plus explication, parce la je suis > perdue. > >
pierfrene
Merci sa fonctionne très bien.
"Antoine Dinimant" a écrit dans le message de news:
Supposons que ton projet VB contienne une feuille nommée Feuille, et que sur cette feuille il y ait une zone de saisie (TextBox) nommée Saisie. Cette zone est destinée à recevoir un nombre, donc si tu es en OS français, tout point qui y est tapé doit être transformé en virgule.
Tu commences par créer une variable SepaDec au niveau de ta Feuille ou, mieux, d'un module séparé.
Public SepaDec As String
A l'ouverture de ton projet, par ex. sur le Form_Load de Feuille, tu détermines ton séparateur décimal (on suppose qu'il ne changera pas pendant l'exécution du projet).
Private Sub Form_Load() SepaDec = Mid(CStr(1 / 2), 2, 1) End Sub
Ensuite, tu vas dans l'événement KeyPress de ta zone de saisie, et tu y mets le code suivant :
Private Sub Saisie_KeyPress(KeyAscii As Integer) If SepaDec <> "." And KeyAscii = Asc(".") Then KeyAscii = Asc(SepaDec) End Sub
Alternativement, si tu veux que tous les contrôles de ta feuille réagissent comme cela, tu mets le If SepaDec <> "." And KeyAscii > Asc(".") Then KeyAscii = Asc(SepaDec) dans le Form_KeyPress au lieu de le mettre dans le Saisie_KeyPress, et tu mets la propriété KeyPreview de ta feuille sur True (ce qui veut dire qu'elle intercepte les événements du clavier avant de les re-transmettre à ses contrôles).
pierfrene a écrit: >>Ton code doit commencer par récupérer le séparateur décimal de l'OS. Il >>y a des API pour cela, mais le plus simple est de jouer avec CStr : >> >>SepaDec = Mid(CStr(1 / 2), 2, 1) >> >>Ensuite, si ton SepaDec n'est pas le point, tu utilises le KeyPress ou >>le KeyDown des zones de saisies concernées pour faire la substitution. > > > Sa m'intéresse. j'aurais de besoin de plus explication, parce la je
suis
> perdue. > >
Merci sa fonctionne très bien.
"Antoine Dinimant" <antoun@free.fr> a écrit dans le message de
news:407C2D82.5030605@free.fr...
Supposons que ton projet VB contienne une feuille nommée Feuille, et que
sur cette feuille il y ait une zone de saisie (TextBox) nommée Saisie.
Cette zone est destinée à recevoir un nombre, donc si tu es en OS
français, tout point qui y est tapé doit être transformé en virgule.
Tu commences par créer une variable SepaDec au niveau de ta Feuille ou,
mieux, d'un module séparé.
Public SepaDec As String
A l'ouverture de ton projet, par ex. sur le Form_Load de Feuille, tu
détermines ton séparateur décimal (on suppose qu'il ne changera pas
pendant l'exécution du projet).
Private Sub Form_Load()
SepaDec = Mid(CStr(1 / 2), 2, 1)
End Sub
Ensuite, tu vas dans l'événement KeyPress de ta zone de saisie, et tu y
mets le code suivant :
Private Sub Saisie_KeyPress(KeyAscii As Integer)
If SepaDec <> "." And KeyAscii = Asc(".") Then KeyAscii = Asc(SepaDec)
End Sub
Alternativement, si tu veux que tous les contrôles de ta feuille
réagissent comme cela, tu mets le If SepaDec <> "." And KeyAscii > Asc(".") Then KeyAscii = Asc(SepaDec) dans le Form_KeyPress au lieu de
le mettre dans le Saisie_KeyPress, et tu mets la propriété KeyPreview de
ta feuille sur True (ce qui veut dire qu'elle intercepte les événements
du clavier avant de les re-transmettre à ses contrôles).
pierfrene a écrit:
>>Ton code doit commencer par récupérer le séparateur décimal de l'OS. Il
>>y a des API pour cela, mais le plus simple est de jouer avec CStr :
>>
>>SepaDec = Mid(CStr(1 / 2), 2, 1)
>>
>>Ensuite, si ton SepaDec n'est pas le point, tu utilises le KeyPress ou
>>le KeyDown des zones de saisies concernées pour faire la substitution.
>
>
> Sa m'intéresse. j'aurais de besoin de plus explication, parce la je
"Antoine Dinimant" a écrit dans le message de news:
Supposons que ton projet VB contienne une feuille nommée Feuille, et que sur cette feuille il y ait une zone de saisie (TextBox) nommée Saisie. Cette zone est destinée à recevoir un nombre, donc si tu es en OS français, tout point qui y est tapé doit être transformé en virgule.
Tu commences par créer une variable SepaDec au niveau de ta Feuille ou, mieux, d'un module séparé.
Public SepaDec As String
A l'ouverture de ton projet, par ex. sur le Form_Load de Feuille, tu détermines ton séparateur décimal (on suppose qu'il ne changera pas pendant l'exécution du projet).
Private Sub Form_Load() SepaDec = Mid(CStr(1 / 2), 2, 1) End Sub
Ensuite, tu vas dans l'événement KeyPress de ta zone de saisie, et tu y mets le code suivant :
Private Sub Saisie_KeyPress(KeyAscii As Integer) If SepaDec <> "." And KeyAscii = Asc(".") Then KeyAscii = Asc(SepaDec) End Sub
Alternativement, si tu veux que tous les contrôles de ta feuille réagissent comme cela, tu mets le If SepaDec <> "." And KeyAscii > Asc(".") Then KeyAscii = Asc(SepaDec) dans le Form_KeyPress au lieu de le mettre dans le Saisie_KeyPress, et tu mets la propriété KeyPreview de ta feuille sur True (ce qui veut dire qu'elle intercepte les événements du clavier avant de les re-transmettre à ses contrôles).
pierfrene a écrit: >>Ton code doit commencer par récupérer le séparateur décimal de l'OS. Il >>y a des API pour cela, mais le plus simple est de jouer avec CStr : >> >>SepaDec = Mid(CStr(1 / 2), 2, 1) >> >>Ensuite, si ton SepaDec n'est pas le point, tu utilises le KeyPress ou >>le KeyDown des zones de saisies concernées pour faire la substitution. > > > Sa m'intéresse. j'aurais de besoin de plus explication, parce la je