none
séparateur de décimales RRS feed

  • Question

  • Pour moi, le problème est différent:

    Je remplis beaucoup données et voudrais utiliser VB avec des GUI''s.

    Mais, comme le nombre d'entrées est très important, je voudrais utiliser

    uniquement mon pavé numérique, et ne pas devoir constamment 

    passer de ce pavé au clavier classique pour introduire le point décimal.

    Si je travaillais avec un clavier QWERTY, ce serait très facile de rester

    uniquement sur le pavé. Mais comme j'utilise un clavier AZERTY, je ne

    dispose que de la virgule sur le pavé. 

    Comme VB et Excel sont tous deux des produits  M'soft, je me demande

    pourquoi VB ne dispose pas de la commande permettant de choisir le

    séparateur décimal désiré comme en Excel.

    Pourrait-on m'aider dans ce sens? Un grand merci d'avance de votre

    attention!


    jeudi 9 février 2017 17:09

Réponses

  • Vous n'indiquez pas quel OS vous utilisez... il y a des différences notables entre XP, 7, 8 et 10, et server.

    Si votre app vit dans plusieurs OS vous pouvez modifiez vos Control pour traiter la , et .

    Par exemple pour forcer le décimal sur la valeur "localisée" de votre OS: (peu importe si vous être sur clavier anglo-saxon ou français (ou autres):

    Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    
            If e.KeyChar >= "0" And e.KeyChar <= "9" Then 'Autorise seulement des chiffres
                e.KeyChar = e.KeyChar 
            ElseIf Asc(e.KeyChar) = 8 Then 'autorise le backspace
                e.KeyChar = e.KeyChar 
            ElseIf e.KeyChar = " "c Then 'Autorise l'espace (millier?)
                e.KeyChar = " "c 
            ElseIf e.KeyChar = ","c Then 'Si une Virgule alors changement en Point
                e.KeyChar = "."c
            ElseIf e.KeyChar = "." Then 'Si Point autorise un seul Point....
                If TextBox1.Text.IndexOf(".") > -1 Then 
                    e.Handled = True
                End If
            Else
                e.Handled = True  
            End If
        End Sub
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            'POUR LAISSER LA FORME TRAITER LES CHANGEMENTS DANS LA TEXTBOX IL FAUT AUTORISER LE KeyPreview!!!
            Me.KeyPreview = True
    
        End Sub
    En fonction de votre GUI d'entrée vous devez modifier le Control en question si ce n'est pas un TextBox... mais le code ressemblera.


    dimanche 12 février 2017 15:54
  • Bonjour,
    Essayez avec les solutions proposées ici: Dot instead of comma on numerical keyboard.

    Cordialement,
    Nina

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    vendredi 10 février 2017 14:35
    Modérateur

Toutes les réponses

  • Bonjour,
    Essayez avec les solutions proposées ici: Dot instead of comma on numerical keyboard.

    Cordialement,
    Nina

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    vendredi 10 février 2017 14:35
    Modérateur
  • Vous n'indiquez pas quel OS vous utilisez... il y a des différences notables entre XP, 7, 8 et 10, et server.

    Si votre app vit dans plusieurs OS vous pouvez modifiez vos Control pour traiter la , et .

    Par exemple pour forcer le décimal sur la valeur "localisée" de votre OS: (peu importe si vous être sur clavier anglo-saxon ou français (ou autres):

    Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    
            If e.KeyChar >= "0" And e.KeyChar <= "9" Then 'Autorise seulement des chiffres
                e.KeyChar = e.KeyChar 
            ElseIf Asc(e.KeyChar) = 8 Then 'autorise le backspace
                e.KeyChar = e.KeyChar 
            ElseIf e.KeyChar = " "c Then 'Autorise l'espace (millier?)
                e.KeyChar = " "c 
            ElseIf e.KeyChar = ","c Then 'Si une Virgule alors changement en Point
                e.KeyChar = "."c
            ElseIf e.KeyChar = "." Then 'Si Point autorise un seul Point....
                If TextBox1.Text.IndexOf(".") > -1 Then 
                    e.Handled = True
                End If
            Else
                e.Handled = True  
            End If
        End Sub
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            'POUR LAISSER LA FORME TRAITER LES CHANGEMENTS DANS LA TEXTBOX IL FAUT AUTORISER LE KeyPreview!!!
            Me.KeyPreview = True
    
        End Sub
    En fonction de votre GUI d'entrée vous devez modifier le Control en question si ce n'est pas un TextBox... mais le code ressemblera.


    dimanche 12 février 2017 15:54